diff --git a/CHANGES.md b/CHANGES.md index c0bf35e2c..2d24b95dd 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,28 +8,29 @@ - New: Support of X708 UPS HAT [details](https://github.com/rootzoll/raspiblitz/pull/3087) - New: BOS Telegram Bot Support (see OPTIONS on LND Balance of Satoshis menu entry) - New: LightningTipBot v0.5 [details](https://github.com/LightningTipBot/LightningTipBot) -- New: CLI shortcut for ↬lnproxy [details](https://github.com/rootzoll/raspiblitz/pull/3333) +- New: ↬lnproxy cli shortcut and server [details](https://github.com/lnproxy) - New: Homebanking Interface FinTS/HBCI (experimental) [details](https://github.com/rootzoll/raspiblitz/issues/1186) - New on WebUI: Jam (JoinMarket Web UI) v0.1.5 [details](https://github.com/joinmarket-webui/joinmarket-webui/releases/tag/v0.1.5) - Update: Bitcoin Core v24.0.1 [details](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-24.0.1.md) -- Update: LND v0.16.0-beta [details](https://github.com/lightningnetwork/lnd/releases/tag/v0.16.0-beta) -- Update: Core Lightning v23.02 [details](https://github.com/ElementsProject/lightning/releases/tag/v23.02) +- Update: LND v0.16.2-beta [details](https://github.com/lightningnetwork/lnd/releases/tag/v0.16.2-beta) +- Update: Core Lightning v23.02.2 [details](https://github.com/ElementsProject/lightning/releases/tag/v23.02.2) - Update: C-lightningREST v0.10.2 [details](https://github.com/Ride-The-Lightning/c-lightning-REST/releases/tag/v0.10.2) - Update: Electrum Server in Rust (electrs) v0.9.11 [details](https://github.com/romanz/electrs/blob/master/RELEASE-NOTES.md#0911-jan-5-2023) - Update: Lightning Terminal v0.8.6-alpha [details](https://github.com/lightninglabs/lightning-terminal/releases/tag/v0.8.6-alpha) - Update: RTL v0.13.6 with update option [details](https://github.com/Ride-The-Lightning/RTL/releases/tag/v0.13.6) - Update: Thunderhub v0.13.16 with balance sharing disabled [details](https://github.com/apotdevin/thunderhub/releases/tag/v0.13.16) - Update: LNbits 0.10.2 [details](https://github.com/lnbits/lnbits/releases/tag/0.10.2) -- Update: BTCPayServer 1.8.2 (using postgres for new installs) [details](https://github.com/btcpayserver/btcpayserver/releases/tag/v1.8.2) +- Update: BTCPayServer 1.9.1 (postgres by default with sqlite migration) [details](https://github.com/btcpayserver/btcpayserver/releases/tag/v1.9.1) - Update: ItchySats 0.7.0 [details](https://github.com/itchysats/itchysats/releases/tag/0.7.0) - Update: Channel Tools (chantools) v0.10.5 [details](https://github.com/guggero/chantools/releases/tag/v0.10.5) - Update: JoinMarket v0.9.9 [details](https://github.com/JoinMarket-Org/joinmarket-clientserver/releases/tag/v0.9.9) -- Update: JoininBox v0.7.6 [details](https://github.com/openoms/joininbox/releases/tag/v0.7.6) +- Update: JoininBox v0.7.7 [details](https://github.com/openoms/joininbox/releases/tag/v0.7.7) - Update: Balance of Satoshis 13.15.0 (bos) [details](https://github.com/alexbosworth/balanceofsatoshis/blob/master/CHANGELOG.md#13150) - Update: lndmanage 0.14.2 [details](https://github.com/bitromortac/lndmanage) - Update: Circuitbreaker with webUI [details](https://github.com/lightningequipment/circuitbreaker/blob/master/README.md) - Update: Suez - Channel Visualization for LND & CL [details](https://github.com/prusnak/suez) - Update: Tallycoin Connect v1.8.0 [details](https://github.com/djbooth007/tallycoin_connect/releases/tag/v1.8.0) +- Update: Fulcrum install script (CLI only) v1.9.1 [details](https://github.com/cculianu/Fulcrum/releases/tag/v1.9.1) - Fixed: SCB/Emergency-Backup to USB drive (now also with CLN emergency.recover file) - Info: Run RaspiBlitz on Proxmox [details](https://github.com/rootzoll/raspiblitz/tree/dev/alternative.platforms/Proxmox) - Info: IP2Tor fix fulmo shop & added new ip2tor.com shop @@ -64,7 +65,7 @@ - Update: C-lightningREST v0.7.2 [details](https://github.com/Ride-The-Lightning/c-lightning-REST/releases/tag/v0.7.2) - Update: CLBOSS 0.13A [details](https://github.com/ZmnSCPxj/clboss/releases/tag/0.13A) - Update: Channel Tools (chantools) v0.10.4 [details](https://github.com/guggero/chantools/blob/master/README.md) -- Update: Lightning Terminal v0.7.0-alpha with Lightning Node Connect over Tor [details](https://github.com/lightninglabs/lightning-terminal/releases/tag/v0.7.0-alpha) +- Update: Lightning Terminal v0.9.2-alpha with Lightning Node Connect over Tor [details](https://github.com/lightninglabs/lightning-terminal/releases/tag/v0.9.2-alpha) - Update: JoinMarket v0.9.6 [details](https://github.com/JoinMarket-Org/joinmarket-clientserver/releases/tag/v0.9.6) - Update: JoininBox v0.6.8 [details](https://github.com/openoms/joininbox/releases/tag/v0.6.8) - Update: JoinMarket Web UI (Jam) v0.0.9 (CLI install script) [details](https://github.com/joinmarket-webui/joinmarket-webui/releases/tag/v0.0.9) diff --git a/README.md b/README.md index e02edf762..a9b1b73d8 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ _Build your own Lightning & Bitcoin Fullnode on a RaspberryPi with an optional Display._ -`Version 1.9.0RC2 with bitcoin 24.0.1, lnd 0.15.5 & Core Lightning 22.11.1` ([api](https://github.com/fusion44/blitz_api)|[web](https://github.com/cstenglein/raspiblitz-web)) +`Version 1.9.0RC2 with bitcoin 24.0.1, lnd 0.16.2 & Core Lightning 23.02` ([api](https://github.com/fusion44/blitz_api)|[web](https://github.com/cstenglein/raspiblitz-web)) ![RaspiBlitz](pictures/raspiblitz.jpg) diff --git a/build_sdcard.sh b/build_sdcard.sh index 5fc8478d8..280ab807e 100644 --- a/build_sdcard.sh +++ b/build_sdcard.sh @@ -48,6 +48,12 @@ if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then usage fi +# check if started with sudo +if [ "$EUID" -ne 0 ]; then + echo "error='run as root / may use sudo'" + exit 1 +fi + if [ "$1" = "-EXPORT" ] || [ "$1" = "EXPORT" ]; then cd /home/admin/raspiblitz 2>/dev/null activeBranch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null) @@ -143,7 +149,7 @@ range_argument(){ } apt_install(){ - sudo apt install -y ${@} + apt install -y ${@} if [ $? -eq 100 ]; then echo "FAIL! apt failed to install needed packages!" echo ${@} @@ -159,7 +165,7 @@ done ## if any of the required programs are not installed, update and if successfull, install packages if [ -n "${general_utils_install}" ]; then echo -e "\n*** SOFTWARE UPDATE ***" - sudo apt update -y || exit 1 + apt update -y || exit 1 apt_install ${general_utils_install} fi @@ -274,17 +280,17 @@ sleep 3 ## give time to cancel export DEBIAN_FRONTEND=noninteractive echo "*** Prevent sleep ***" # on all platforms https://wiki.debian.org/Suspend -sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target -sudo mkdir /etc/systemd/sleep.conf.d +systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target +mkdir /etc/systemd/sleep.conf.d echo "[Sleep] AllowSuspend=no AllowHibernation=no AllowSuspendThenHibernate=no -AllowHybridSleep=no" | sudo tee /etc/systemd/sleep.conf.d/nosuspend.conf -sudo mkdir /etc/systemd/logind.conf.d +AllowHybridSleep=no" | tee /etc/systemd/sleep.conf.d/nosuspend.conf +mkdir /etc/systemd/logind.conf.d echo "[Login] HandleLidSwitch=ignore -HandleLidSwitchDocked=ignore" | sudo tee /etc/systemd/logind.conf.d/nosuspend.conf +HandleLidSwitchDocked=ignore" | tee /etc/systemd/logind.conf.d/nosuspend.conf # FIXING LOCALES # https://github.com/rootzoll/raspiblitz/issues/138 @@ -293,25 +299,25 @@ HandleLidSwitchDocked=ignore" | sudo tee /etc/systemd/logind.conf.d/nosuspend.co if [ "${baseimage}" = "raspios_arm64" ]||[ "${baseimage}" = "debian_rpi64" ]||[ "${baseimage}" = "armbian" ]; then echo -e "\n*** FIXING LOCALES FOR BUILD ***" - sudo sed -i "s/^# en_US.UTF-8 UTF-8.*/en_US.UTF-8 UTF-8/g" /etc/locale.gen - sudo sed -i "s/^# en_US ISO-8859-1.*/en_US ISO-8859-1/g" /etc/locale.gen - sudo locale-gen + sed -i "s/^# en_US.UTF-8 UTF-8.*/en_US.UTF-8 UTF-8/g" /etc/locale.gen + sed -i "s/^# en_US ISO-8859-1.*/en_US ISO-8859-1/g" /etc/locale.gen + locale-gen export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 if [ ! -f /etc/apt/sources.list.d/raspi.list ]; then echo "# Add the archive.raspberrypi.org/debian/ to the sources.list" - echo "deb http://archive.raspberrypi.org/debian/ bullseye main" | sudo tee /etc/apt/sources.list.d/raspi.list + echo "deb http://archive.raspberrypi.org/debian/ bullseye main" | tee /etc/apt/sources.list.d/raspi.list fi fi echo "*** Remove unnecessary packages ***" -sudo apt remove --purge -y libreoffice* oracle-java* chromium-browser nuscratch scratch sonic-pi plymouth python2 vlc* cups -sudo apt clean -y -sudo apt autoremove -y +apt remove --purge -y libreoffice* oracle-java* chromium-browser nuscratch scratch sonic-pi plymouth python2 vlc* cups +apt clean -y +apt autoremove -y echo -e "\n*** UPDATE Debian***" -sudo apt update -y -sudo apt upgrade -f -y +apt update -y +apt upgrade -f -y echo -e "\n*** SOFTWARE UPDATE ***" # based on https://raspibolt.org/system-configuration.html#system-update @@ -342,23 +348,23 @@ server_utils="rsync net-tools xxd netcat openssh-client openssh-sftp-server sshp [ "${architecture}" = "amd64" ] && amd64_dependencies="network-manager" # add amd64 dependency apt_install ${general_utils} ${python_dependencies} ${server_utils} ${armbian_dependencies} ${amd64_dependencies} -sudo apt clean -y -sudo apt autoremove -y +apt clean -y +apt autoremove -y echo -e "\n*** Python DEFAULT libs & dependencies ***" if [ -f "/usr/bin/python3.9" ]; then # use python 3.9 if available - sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 + update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 echo "python calls python3.9" elif [ -f "/usr/bin/python3.10" ]; then # use python 3.10 if available - sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1 - sudo ln -s /usr/bin/python3.10 /usr/bin/python3.9 + update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1 + ln -s /usr/bin/python3.10 /usr/bin/python3.9 echo "python calls python3.10" elif [ -f "/usr/bin/python3.8" ]; then # use python 3.8 if available - sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 + update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 echo "python calls python3.8" else echo "# FAIL #" @@ -367,7 +373,7 @@ else fi # make sure /usr/bin/pip exists (and calls pip3 in Debian Buster) -sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 +update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 # 1. libs (for global python scripts) # grpcio==1.42.0 googleapis-common-protos==1.53.0 toml==0.10.2 j2cli==0.3.10 requests[socks]==2.21.0 # 2. For TorBox bridges python scripts (pip3) https://github.com/radio24/TorBox/blob/master/requirements.txt @@ -383,8 +389,8 @@ echo -e "\n*** PREPARE ${baseimage} ***" # make sure the pi user is present if [ "$(compgen -u | grep -c pi)" -eq 0 ];then echo "# Adding the user pi" - sudo adduser --disabled-password --gecos "" pi - sudo adduser pi sudo + adduser --disabled-password --gecos "" pi + adduser pi sudo fi # special prepare when Raspbian @@ -393,12 +399,12 @@ if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; echo -e "\n*** PREPARE RASPBERRY OS VARIANTS ***" apt_install raspi-config # do memory split (16MB) - sudo raspi-config nonint do_memory_split 16 + raspi-config nonint do_memory_split 16 # set to wait until network is available on boot (0 seems to yes) - sudo raspi-config nonint do_boot_wait 0 + raspi-config nonint do_boot_wait 0 # set WIFI country so boot does not block # this will undo the softblock of rfkill on RaspiOS - [ "${wifi_region}" != "off" ] && sudo raspi-config nonint do_wifi_country $wifi_region + [ "${wifi_region}" != "off" ] && raspi-config nonint do_wifi_country $wifi_region # see https://github.com/rootzoll/raspiblitz/issues/428#issuecomment-472822840 configFile="/boot/config.txt" @@ -406,9 +412,9 @@ if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; max_usb_currentDone=$(grep -c "$max_usb_current" $configFile) if [ ${max_usb_currentDone} -eq 0 ]; then - echo | sudo tee -a $configFile - echo "# Raspiblitz" | sudo tee -a $configFile - echo "$max_usb_current" | sudo tee -a $configFile + echo | tee -a $configFile + echo "# Raspiblitz" | tee -a $configFile + echo "$max_usb_current" | tee -a $configFile else echo "$max_usb_current already in $configFile" fi @@ -416,10 +422,10 @@ if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; # run fsck on sd root partition on every startup to prevent "maintenance login" screen # see: https://github.com/rootzoll/raspiblitz/issues/782#issuecomment-564981630 # see https://github.com/rootzoll/raspiblitz/issues/1053#issuecomment-600878695 - # use command to check last fsck check: sudo tune2fs -l /dev/mmcblk0p2 + # use command to check last fsck check: tune2fs -l /dev/mmcblk0p2 if [ "${tweak_boot_drive}" == "true" ]; then echo "* running tune2fs" - sudo tune2fs -c 1 /dev/mmcblk0p2 + tune2fs -c 1 /dev/mmcblk0p2 else echo "* skipping tweak_boot_drive" fi @@ -432,13 +438,13 @@ if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; fsOption2InFile=$(grep -c ${fsOption2} ${kernelOptionsFile}) if [ ${fsOption1InFile} -eq 0 ]; then - sudo sed -i "s/^/$fsOption1 /g" "$kernelOptionsFile" + sed -i "s/^/$fsOption1 /g" "$kernelOptionsFile" echo "$fsOption1 added to $kernelOptionsFile" else echo "$fsOption1 already in $kernelOptionsFile" fi if [ ${fsOption2InFile} -eq 0 ]; then - sudo sed -i "s/^/$fsOption2 /g" "$kernelOptionsFile" + sed -i "s/^/$fsOption2 /g" "$kernelOptionsFile" echo "$fsOption2 added to $kernelOptionsFile" else echo "$fsOption2 already in $kernelOptionsFile" @@ -448,15 +454,15 @@ fi # special prepare when Nvidia Jetson Nano if [ $(uname -a | grep -c 'tegra') -gt 0 ] ; then echo "Nvidia --> disable GUI on boot" - sudo systemctl set-default multi-user.target + systemctl set-default multi-user.target fi echo -e "\n*** CONFIG ***" # based on https://raspibolt.github.io/raspibolt/raspibolt_20_pi.html#raspi-config # set new default password for root user -echo "root:raspiblitz" | sudo chpasswd -echo "pi:raspiblitz" | sudo chpasswd +echo "root:raspiblitz" | chpasswd +echo "pi:raspiblitz" | chpasswd # prepare auto-start of 00infoLCD.sh script on pi user login (just kicks in if auto-login of pi is activated in HDMI or LCD mode) if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ] || \ @@ -467,10 +473,10 @@ if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ] | # bash autostart for pi # run as exec to dont allow easy physical access by keyboard # see https://github.com/rootzoll/raspiblitz/issues/54 - sudo bash -c 'echo "# automatic start the LCD info loop" >> /home/pi/.bashrc' - sudo bash -c 'echo "SCRIPT=/home/admin/00infoLCD.sh" >> /home/pi/.bashrc' - sudo bash -c 'echo "# replace shell with script => logout when exiting script" >> /home/pi/.bashrc' - sudo bash -c 'echo "exec \$SCRIPT" >> /home/pi/.bashrc' + bash -c 'echo "# automatic start the LCD info loop" >> /home/pi/.bashrc' + bash -c 'echo "SCRIPT=/home/admin/00infoLCD.sh" >> /home/pi/.bashrc' + bash -c 'echo "# replace shell with script => logout when exiting script" >> /home/pi/.bashrc' + bash -c 'echo "exec \$SCRIPT" >> /home/pi/.bashrc' echo "autostart LCD added to $homeFile" else echo "autostart LCD already in $homeFile" @@ -480,8 +486,8 @@ else fi # limit journald system use -sudo sed -i "s/^#SystemMaxUse=.*/SystemMaxUse=250M/g" /etc/systemd/journald.conf -sudo sed -i "s/^#SystemMaxFileSize=.*/SystemMaxFileSize=50M/g" /etc/systemd/journald.conf +sed -i "s/^#SystemMaxUse=.*/SystemMaxUse=250M/g" /etc/systemd/journald.conf +sed -i "s/^#SystemMaxFileSize=.*/SystemMaxFileSize=50M/g" /etc/systemd/journald.conf # change log rotates # see https://github.com/rootzoll/raspiblitz/issues/394#issuecomment-471535483 @@ -549,25 +555,25 @@ echo " invoke-rc.d rsyslog rotate > /dev/null endscript } -" | sudo tee ./rsyslog -sudo mv ./rsyslog /etc/logrotate.d/rsyslog -sudo chown root:root /etc/logrotate.d/rsyslog -sudo service rsyslog restart +" | tee ./rsyslog +mv ./rsyslog /etc/logrotate.d/rsyslog +chown root:root /etc/logrotate.d/rsyslog +service rsyslog restart echo -e "\n*** ADDING MAIN USER admin ***" # based on https://raspibolt.org/system-configuration.html#add-users # using the default password 'raspiblitz' -sudo adduser --disabled-password --gecos "" admin -echo "admin:raspiblitz" | sudo chpasswd -sudo adduser admin sudo -sudo chsh admin -s /bin/bash +adduser --disabled-password --gecos "" admin +echo "admin:raspiblitz" | chpasswd +adduser admin sudo +chsh admin -s /bin/bash # configure sudo for usage without password entry echo '%sudo ALL=(ALL) NOPASSWD:ALL' | sudo EDITOR='tee -a' visudo # check if group "admin" was created if [ $(sudo cat /etc/group | grep -c "^admin") -lt 1 ]; then echo -e "\nMissing group admin - creating it ..." - sudo /usr/sbin/groupadd --force --gid 1002 admin - sudo usermod -a -G admin admin + /usr/sbin/groupadd --force --gid 1002 admin + usermod -a -G admin admin else echo -e "\nOK group admin exists" fi @@ -575,31 +581,31 @@ fi echo -e "\n*** ADDING SERVICE USER bitcoin" # based on https://raspibolt.org/guide/raspberry-pi/system-configuration.html # create user and set default password for user -sudo adduser --disabled-password --gecos "" bitcoin -echo "bitcoin:raspiblitz" | sudo chpasswd +adduser --disabled-password --gecos "" bitcoin +echo "bitcoin:raspiblitz" | chpasswd # make home directory readable -sudo chmod 755 /home/bitcoin +chmod 755 /home/bitcoin # WRITE BASIC raspiblitz.info to sdcard # if further info gets added .. make sure to keep that on: blitz.preparerelease.sh -sudo touch /home/admin/raspiblitz.info +touch /home/admin/raspiblitz.info echo "baseimage=${baseimage}" | tee raspiblitz.info echo "cpu=${cpu}" | tee -a raspiblitz.info echo "displayClass=headless" | tee -a raspiblitz.info -sudo mv raspiblitz.info /home/admin/ -sudo chmod 755 /home/admin/raspiblitz.info -sudo chown admin:admin /home/admin/raspiblitz.info +mv raspiblitz.info /home/admin/ +chmod 755 /home/admin/raspiblitz.info +chown admin:admin /home/admin/raspiblitz.info echo -e "\n*** ADDING GROUPS FOR CREDENTIALS STORE ***" # access to credentials (e.g. macaroon files) in a central location is managed with unix groups and permissions -sudo /usr/sbin/groupadd --force --gid 9700 lndadmin -sudo /usr/sbin/groupadd --force --gid 9701 lndinvoice -sudo /usr/sbin/groupadd --force --gid 9702 lndreadonly -sudo /usr/sbin/groupadd --force --gid 9703 lndinvoices -sudo /usr/sbin/groupadd --force --gid 9704 lndchainnotifier -sudo /usr/sbin/groupadd --force --gid 9705 lndsigner -sudo /usr/sbin/groupadd --force --gid 9706 lndwalletkit -sudo /usr/sbin/groupadd --force --gid 9707 lndrouter +/usr/sbin/groupadd --force --gid 9700 lndadmin +/usr/sbin/groupadd --force --gid 9701 lndinvoice +/usr/sbin/groupadd --force --gid 9702 lndreadonly +/usr/sbin/groupadd --force --gid 9703 lndinvoices +/usr/sbin/groupadd --force --gid 9704 lndchainnotifier +/usr/sbin/groupadd --force --gid 9705 lndsigner +/usr/sbin/groupadd --force --gid 9706 lndwalletkit +/usr/sbin/groupadd --force --gid 9707 lndrouter echo -e "\n*** SHELL SCRIPTS & ASSETS ***" # copy raspiblitz repo from github @@ -629,10 +635,10 @@ file="/home/admin/config.scripts/lndlibs/lightning_pb2_grpc.py" ! grep -Eq "^from . import.*" "${file}" && sed -i -E 's/^(import.*_pb2)/from . \1/' "${file}" # add /sbin to path for all -sudo bash -c "echo 'PATH=\$PATH:/sbin' >> /etc/profile" +bash -c "echo 'PATH=\$PATH:/sbin' >> /etc/profile" # replace boot splash image when raspbian -[ "${baseimage}" = "raspios_arm64" ] && { echo "* replacing boot splash"; sudo cp /home/admin/raspiblitz/pictures/splash.png /usr/share/plymouth/themes/pix/splash.png; } +[ -d /usr/share/plymouth ] && [ "${baseimage}" = "raspios_arm64" ] && { echo "* replacing boot splash"; cp /home/admin/raspiblitz/pictures/splash.png /usr/share/plymouth/themes/pix/splash.png; } echo -e "\n*** RASPIBLITZ EXTRAS ***" @@ -641,26 +647,26 @@ echo -e "\n*** RASPIBLITZ EXTRAS ***" # fzf install a command-line fuzzy finder (https://github.com/junegunn/fzf) apt_install tmux screen fzf -sudo bash -c "echo '' >> /home/admin/.bashrc" -sudo bash -c "echo '# https://github.com/rootzoll/raspiblitz/issues/1784' >> /home/admin/.bashrc" -sudo bash -c "echo 'NG_CLI_ANALYTICS=ci' >> /home/admin/.bashrc" +bash -c "echo '' >> /home/admin/.bashrc" +bash -c "echo '# https://github.com/rootzoll/raspiblitz/issues/1784' >> /home/admin/.bashrc" +bash -c "echo 'NG_CLI_ANALYTICS=ci' >> /home/admin/.bashrc" # raspiblitz custom command prompt #2400 if ! grep -Eq "^[[:space:]]*PS1.*₿" /home/admin/.bashrc; then - sudo sed -i '/^unset color_prompt force_color_prompt$/i # raspiblitz custom command prompt https://github.com/rootzoll/raspiblitz/issues/2400' /home/admin/.bashrc - sudo sed -i '/^unset color_prompt force_color_prompt$/i raspiIp=$(hostname -I | cut -d " " -f1)' /home/admin/.bashrc - sudo sed -i '/^unset color_prompt force_color_prompt$/i if [ "$color_prompt" = yes ]; then' /home/admin/.bashrc - sudo sed -i '/^unset color_prompt force_color_prompt$/i \ PS1=\x27${debian_chroot:+($debian_chroot)}\\[\\033[00;33m\\]\\u@$raspiIp:\\[\\033[00;34m\\]\\w\\[\\033[01;35m\\]$(__git_ps1 "(%s)") \\[\\033[01;33m\\]₿\\[\\033[00m\\] \x27' /home/admin/.bashrc - sudo sed -i '/^unset color_prompt force_color_prompt$/i else' /home/admin/.bashrc - sudo sed -i '/^unset color_prompt force_color_prompt$/i \ PS1=\x27${debian_chroot:+($debian_chroot)}\\u@$raspiIp:\\w₿ \x27' /home/admin/.bashrc - sudo sed -i '/^unset color_prompt force_color_prompt$/i fi' /home/admin/.bashrc + sed -i '/^unset color_prompt force_color_prompt$/i # raspiblitz custom command prompt https://github.com/rootzoll/raspiblitz/issues/2400' /home/admin/.bashrc + sed -i '/^unset color_prompt force_color_prompt$/i raspiIp=$(hostname -I | cut -d " " -f1)' /home/admin/.bashrc + sed -i '/^unset color_prompt force_color_prompt$/i if [ "$color_prompt" = yes ]; then' /home/admin/.bashrc + sed -i '/^unset color_prompt force_color_prompt$/i \ PS1=\x27${debian_chroot:+($debian_chroot)}\\[\\033[00;33m\\]\\u@$raspiIp:\\[\\033[00;34m\\]\\w\\[\\033[01;35m\\]$(__git_ps1 "(%s)") \\[\\033[01;33m\\]₿\\[\\033[00m\\] \x27' /home/admin/.bashrc + sed -i '/^unset color_prompt force_color_prompt$/i else' /home/admin/.bashrc + sed -i '/^unset color_prompt force_color_prompt$/i \ PS1=\x27${debian_chroot:+($debian_chroot)}\\u@$raspiIp:\\w₿ \x27' /home/admin/.bashrc + sed -i '/^unset color_prompt force_color_prompt$/i fi' /home/admin/.bashrc fi echo -e "\n*** FUZZY FINDER KEY BINDINGS ***" homeFile=/home/admin/.bashrc keyBindingsDone=$(grep -c "source /usr/share/doc/fzf/examples/key-bindings.bash" $homeFile) if [ ${keyBindingsDone} -eq 0 ]; then - sudo bash -c "echo 'source /usr/share/doc/fzf/examples/key-bindings.bash' >> /home/admin/.bashrc" + bash -c "echo 'source /usr/share/doc/fzf/examples/key-bindings.bash' >> /home/admin/.bashrc" echo "key-bindings added to $homeFile" else echo "key-bindings already in $homeFile" @@ -671,13 +677,13 @@ homeFile=/home/admin/.bashrc autostartDone=$(grep -c "automatically start main menu" $homeFile) if [ ${autostartDone} -eq 0 ]; then # bash autostart for admin - sudo bash -c "echo '# shortcut commands' >> /home/admin/.bashrc" - sudo bash -c "echo 'source /home/admin/_commands.sh' >> /home/admin/.bashrc" - sudo bash -c "echo '# automatically start main menu for admin unless' >> /home/admin/.bashrc" - sudo bash -c "echo '# when running in a tmux session' >> /home/admin/.bashrc" - sudo bash -c "echo 'if [ -z \"\$TMUX\" ]; then' >> /home/admin/.bashrc" - sudo bash -c "echo ' ./00raspiblitz.sh newsshsession' >> /home/admin/.bashrc" - sudo bash -c "echo 'fi' >> /home/admin/.bashrc" + bash -c "echo '# shortcut commands' >> /home/admin/.bashrc" + bash -c "echo 'source /home/admin/_commands.sh' >> /home/admin/.bashrc" + bash -c "echo '# automatically start main menu for admin unless' >> /home/admin/.bashrc" + bash -c "echo '# when running in a tmux session' >> /home/admin/.bashrc" + bash -c "echo 'if [ -z \"\$TMUX\" ]; then' >> /home/admin/.bashrc" + bash -c "echo ' ./00raspiblitz.sh newsshsession' >> /home/admin/.bashrc" + bash -c "echo 'fi' >> /home/admin/.bashrc" echo "autostart added to $homeFile" else echo "autostart already in $homeFile" @@ -686,21 +692,21 @@ fi echo -e "\n*** SWAP FILE ***" # based on https://stadicus.github.io/RaspiBolt/raspibolt_20_pi.html#move-swap-file # but just deactivating and deleting old (will be created alter when user adds HDD) -sudo dphys-swapfile swapoff -sudo dphys-swapfile uninstall +dphys-swapfile swapoff +dphys-swapfile uninstall echo -e "\n*** INCREASE OPEN FILE LIMIT ***" # based on https://raspibolt.org/guide/raspberry-pi/security.html#increase-your-open-files-limit -sudo sed --in-place -i "56s/.*/* soft nofile 256000/" /etc/security/limits.conf -sudo bash -c "echo '* hard nofile 256000' >> /etc/security/limits.conf" -sudo bash -c "echo 'root soft nofile 256000' >> /etc/security/limits.conf" -sudo bash -c "echo 'root hard nofile 256000' >> /etc/security/limits.conf" -sudo bash -c "echo '# End of file' >> /etc/security/limits.conf" -sudo sed --in-place -i "23s/.*/session required pam_limits.so/" /etc/pam.d/common-session -sudo sed --in-place -i "25s/.*/session required pam_limits.so/" /etc/pam.d/common-session-noninteractive -sudo bash -c "echo '# end of pam-auth-update config' >> /etc/pam.d/common-session-noninteractive" +sed --in-place -i "56s/.*/* soft nofile 256000/" /etc/security/limits.conf +bash -c "echo '* hard nofile 256000' >> /etc/security/limits.conf" +bash -c "echo 'root soft nofile 256000' >> /etc/security/limits.conf" +bash -c "echo 'root hard nofile 256000' >> /etc/security/limits.conf" +bash -c "echo '# End of file' >> /etc/security/limits.conf" +sed --in-place -i "23s/.*/session required pam_limits.so/" /etc/pam.d/common-session +sed --in-place -i "25s/.*/session required pam_limits.so/" /etc/pam.d/common-session-noninteractive +bash -c "echo '# end of pam-auth-update config' >> /etc/pam.d/common-session-noninteractive" # increase the possible number of running processes from 128 -sudo bash -c "echo 'fs.inotify.max_user_instances=4096' >> /etc/sysctl.conf" +bash -c "echo 'fs.inotify.max_user_instances=4096' >> /etc/sysctl.conf" # *** fail2ban *** # based on https://raspibolt.org/security.html#fail2ban @@ -709,16 +715,16 @@ apt_install --no-install-recommends python3-systemd fail2ban # *** CACHE DISK IN RAM & KEYVALUE-STORE*** echo "Activating CACHE RAM DISK ... " -sudo /home/admin/_cache.sh ramdisk on -sudo /home/admin/_cache.sh keyvalue on +/home/admin/_cache.sh ramdisk on +/home/admin/_cache.sh keyvalue on # *** Wifi, Bluetooth & other RaspberryPi configs *** if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; then if [ "${wifi_region}" == "off" ]; then echo -e "\n*** DISABLE WIFI ***" - sudo systemctl disable wpa_supplicant.service - sudo ifconfig wlan0 down + systemctl disable wpa_supplicant.service + ifconfig wlan0 down fi echo -e "\n*** DISABLE BLUETOOTH ***" @@ -728,46 +734,46 @@ if [ "${baseimage}" = "raspios_arm64" ] || [ "${baseimage}" = "debian_rpi64" ]; if [ "${disableBTDone}" -eq 0 ]; then # disable bluetooth module - echo "" | sudo tee -a $configFile - echo "# Raspiblitz" | sudo tee -a $configFile - echo 'dtoverlay=pi3-disable-bt' | sudo tee -a $configFile - echo 'dtoverlay=disable-bt' | sudo tee -a $configFile + echo "" | tee -a $configFile + echo "# Raspiblitz" | tee -a $configFile + echo 'dtoverlay=pi3-disable-bt' | tee -a $configFile + echo 'dtoverlay=disable-bt' | tee -a $configFile else echo "disable BT already in $configFile" fi # remove bluetooth services - sudo systemctl disable bluetooth.service - sudo systemctl disable hciuart.service + systemctl disable bluetooth.service + systemctl disable hciuart.service # remove bluetooth packages - sudo apt remove -y --purge pi-bluetooth bluez bluez-firmware + apt remove -y --purge pi-bluetooth bluez bluez-firmware # disable audio echo -e "\n*** DISABLE AUDIO (snd_bcm2835) ***" - sudo sed -i "s/^dtparam=audio=on/# dtparam=audio=on/g" /boot/config.txt + sed -i "s/^dtparam=audio=on/# dtparam=audio=on/g" /boot/config.txt # disable DRM VC4 V3D echo -e "\n*** DISABLE DRM VC4 V3D driver ***" dtoverlay=vc4-fkms-v3d - sudo sed -i "s/^dtoverlay=${dtoverlay}/# dtoverlay=${dtoverlay}/g" /boot/config.txt + sed -i "s/^dtoverlay=${dtoverlay}/# dtoverlay=${dtoverlay}/g" /boot/config.txt # I2C fix (make sure dtparam=i2c_arm is not on) # see: https://github.com/rootzoll/raspiblitz/issues/1058#issuecomment-739517713 - sudo sed -i "s/^dtparam=i2c_arm=.*//g" /boot/config.txt + sed -i "s/^dtparam=i2c_arm=.*//g" /boot/config.txt fi # *** BOOTSTRAP *** echo -e "\n*** RASPI BOOTSTRAP SERVICE ***" -sudo chmod +x /home/admin/_bootstrap.sh -sudo cp /home/admin/assets/bootstrap.service /etc/systemd/system/bootstrap.service -sudo systemctl enable bootstrap +chmod +x /home/admin/_bootstrap.sh +cp /home/admin/assets/bootstrap.service /etc/systemd/system/bootstrap.service +systemctl enable bootstrap # *** BACKGROUND TASKS *** echo -e "\n*** RASPI BACKGROUND SERVICE ***" -sudo chmod +x /home/admin/_background.sh -sudo cp /home/admin/assets/background.service /etc/systemd/system/background.service -sudo systemctl enable background +chmod +x /home/admin/_background.sh +cp /home/admin/assets/background.service /etc/systemd/system/background.service +systemctl enable background # *** BACKGROUND SCAN *** /home/admin/_background.scan.sh install @@ -806,23 +812,23 @@ fi byteSizeList=$(sudo -u admin stat -c %s /home/admin/fallback.bitnodes.nodes) if [ ${#byteSizeList} -eq 0 ] || [ ${byteSizeList} -lt 10240 ]; then echo "Using fallback list from repo: bitnodes" - sudo rm /home/admin/fallback.bitnodes.nodes 2>/dev/null - sudo cp /home/admin/assets/fallback.bitnodes.nodes /home/admin/fallback.bitnodes.nodes + rm /home/admin/fallback.bitnodes.nodes 2>/dev/null + cp /home/admin/assets/fallback.bitnodes.nodes /home/admin/fallback.bitnodes.nodes fi -sudo chown admin:admin /home/admin/fallback.bitnodes.nodes +chown admin:admin /home/admin/fallback.bitnodes.nodes # check fallback list bitcoin core byteSizeList=$(sudo -u admin stat -c %s /home/admin/fallback.bitcoin.nodes) if [ ${#byteSizeList} -eq 0 ] || [ ${byteSizeList} -lt 10240 ]; then echo "Using fallback list from repo: bitcoin core" - sudo rm /home/admin/fallback.bitcoin.nodes 2>/dev/null - sudo cp /home/admin/assets/fallback.bitcoin.nodes /home/admin/fallback.bitcoin.nodes + rm /home/admin/fallback.bitcoin.nodes 2>/dev/null + cp /home/admin/assets/fallback.bitcoin.nodes /home/admin/fallback.bitcoin.nodes fi -sudo chown admin:admin /home/admin/fallback.bitcoin.nodes +chown admin:admin /home/admin/fallback.bitcoin.nodes echo echo "*** raspiblitz.info ***" -sudo cat /home/admin/raspiblitz.info +cat /home/admin/raspiblitz.info # *** RASPIBLITZ IMAGE READY INFO *** echo -e "\n**********************************************" @@ -835,13 +841,13 @@ echo "1. login fresh --> user:admin password:raspiblitz" echo -e "2. run --> release\n" # make sure that at least the code is available (also if no internet) -sudo /home/admin/config.scripts/blitz.display.sh prepare-install +/home/admin/config.scripts/blitz.display.sh prepare-install # (do last - because might trigger reboot) if [ "${display}" != "headless" ] || [ "${baseimage}" = "raspios_arm64" ]; then echo "*** ADDITIONAL DISPLAY OPTIONS ***" echo "- calling: blitz.display.sh set-display ${display}" - sudo /home/admin/config.scripts/blitz.display.sh set-display ${display} - sudo /home/admin/config.scripts/blitz.display.sh rotate 1 + /home/admin/config.scripts/blitz.display.sh set-display ${display} + /home/admin/config.scripts/blitz.display.sh rotate 1 fi echo "# BUILD DONE - see above" diff --git a/home.admin/_version.info b/home.admin/_version.info index 1d07fcd9a..9a7e4fe60 100644 --- a/home.admin/_version.info +++ b/home.admin/_version.info @@ -1,3 +1,3 @@ # RaspiBlitz Version - always [major].[main].[sub] (sub can be a string like '2rc1') -codeVersion="1.9.0rc3" +codeVersion="1.9.0rc4" # keep last line with comment \ No newline at end of file diff --git a/home.admin/assets/nginx/sites-available/lnproxy_ssl.conf b/home.admin/assets/nginx/sites-available/lnproxy_ssl.conf index 18eb359b5..051c55e63 100644 --- a/home.admin/assets/nginx/sites-available/lnproxy_ssl.conf +++ b/home.admin/assets/nginx/sites-available/lnproxy_ssl.conf @@ -1,8 +1,8 @@ ## lnproxy_ssl.conf server { - listen 4749 ssl http2; - listen [::]:4749 ssl http2; + listen 4748 ssl http2; + listen [::]:4748 ssl http2; server_name _; include /etc/nginx/snippets/ssl-params.conf; @@ -13,15 +13,7 @@ server { access_log /var/log/nginx/access_lnproxy.log; error_log /var/log/nginx/error_lnproxy.log; - location /api/ { - proxy_pass http://127.0.0.1:4747/; - - include /etc/nginx/snippets/ssl-proxy-params.conf; - } - location / { - proxy_pass http://127.0.0.1:4748; - - include /etc/nginx/snippets/ssl-proxy-params.conf; + proxy_pass http://127.0.0.1:4747; } } diff --git a/home.admin/assets/nginx/sites-available/lnproxy_tor.conf b/home.admin/assets/nginx/sites-available/lnproxy_tor.conf index 8151e0b1f..157f292aa 100644 --- a/home.admin/assets/nginx/sites-available/lnproxy_tor.conf +++ b/home.admin/assets/nginx/sites-available/lnproxy_tor.conf @@ -1,25 +1,16 @@ ## lnproxy_tor.conf server { - listen 4750; + listen 4749; server_name _; - include /etc/nginx/snippets/ssl-params.conf; - include /etc/nginx/snippets/ssl-certificate-app-data.conf; - include /etc/nginx/snippets/gzip-params.conf; access_log /var/log/nginx/access_lnproxy.log; error_log /var/log/nginx/error_lnproxy.log; - location /api/ { - proxy_pass http://127.0.0.1:4747/; - - include /etc/nginx/snippets/ssl-proxy-params.conf; - } - location / { - proxy_pass http://127.0.0.1:4748; + proxy_pass http://127.0.0.1:4747; include /etc/nginx/snippets/ssl-proxy-params.conf; } diff --git a/home.admin/assets/nginx/sites-available/lnproxy_tor_ssl.conf b/home.admin/assets/nginx/sites-available/lnproxy_tor_ssl.conf index 87d47840d..ffc90f63a 100644 --- a/home.admin/assets/nginx/sites-available/lnproxy_tor_ssl.conf +++ b/home.admin/assets/nginx/sites-available/lnproxy_tor_ssl.conf @@ -1,7 +1,7 @@ ## lnproxy_tor_ssl.conf server { - listen 4751 ssl http2; + listen 4750 ssl http2; server_name _; include /etc/nginx/snippets/ssl-params.conf; @@ -12,14 +12,8 @@ server { access_log /var/log/nginx/access_lnproxy.log; error_log /var/log/nginx/error_lnproxy.log; - location /api/ { - proxy_pass http://127.0.0.1:4747/; - - include /etc/nginx/snippets/ssl-proxy-params.conf; - } - location / { - proxy_pass http://127.0.0.1:4748; + proxy_pass http://127.0.0.1:4747; include /etc/nginx/snippets/ssl-proxy-params.conf; } diff --git a/home.admin/config.scripts/bitcoin.update.sh b/home.admin/config.scripts/bitcoin.update.sh index 862abcdfa..991d555dc 100755 --- a/home.admin/config.scripts/bitcoin.update.sh +++ b/home.admin/config.scripts/bitcoin.update.sh @@ -17,37 +17,36 @@ fi mode="$1" # RECOMMENDED UPDATE BY RASPIBLITZ TEAM -# comment will be shown as "BEWARE Info" when option is choosen (can be multiple lines) +# comment will be shown as "BEWARE Info" when option is choosen (can be multiple lines) bitcoinVersion="" # example: 22.0 .. keep empty if no newer version as sd card build is available # needed to check code signing -# https://github.com/laanwj -laanwjPGP="71A3 B167 3540 5025 D447 E8F2 7481 0B01 2346 C9A6" +# https://github.com/sipa.gpg +fallbackSigner=sipa # GATHER DATA # setting download directory to the current user downloadDir="/home/$(whoami)/download/bitcoin.update" # detect CPU architecture & fitting download link -if [ $(uname -m | grep -c 'arm') -eq 1 ] ; then +if [ $(uname -m | grep -c 'arm') -eq 1 ]; then bitcoinOSversion="arm-linux-gnueabihf" fi -if [ $(uname -m | grep -c 'aarch64') -eq 1 ] ; then +if [ $(uname -m | grep -c 'aarch64') -eq 1 ]; then bitcoinOSversion="aarch64-linux-gnu" fi -if [ $(uname -m | grep -c 'x86_64') -eq 1 ] ; then +if [ $(uname -m | grep -c 'x86_64') -eq 1 ]; then bitcoinOSversion="x86_64-linux-gnu" fi # installed version -installedVersion=$(sudo -u bitcoin bitcoind --version | head -n1| cut -d" " -f4|cut -c 2-) +installedVersion=$(sudo -u bitcoin bitcoind --version | head -n1 | cut -d" " -f4 | cut -c 2-) # test if the installed version already the tested/recommended update version bitcoinUpdateInstalled=$(echo "${installedVersion}" | grep -c "${bitcoinVersion}") # get latest release from GitHub releases -gitHubLatestReleaseJSON="$(curl --header "X-GitHub-Api-Version:2022-11-28" -s https://api.github.com/repos/bitcoin/bitcoin/releases | jq '.[0]')" -bitcoinLatestVersion=$(echo "${gitHubLatestReleaseJSON}"|jq -r '.tag_name'|cut -c 2-) +bitcoinLatestVersion=$(curl --header "X-GitHub-Api-Version:2022-11-28" -s https://api.github.com/repos/bitcoin/bitcoin/releases | jq -r '.[].tag_name' | sort | tail -n1 | cut -c 2-) # INFO function displayInfo() { @@ -75,7 +74,7 @@ if [ "${mode}" = "tested" ]; then # check for optional second parameter: forced update version # --> only does the tested update if its the given version - # this is needed for recovery/update. + # this is needed for recovery/update. fixedBitcoinVersion="$2" if [ ${#fixedBitcoinVersion} -gt 0 ]; then echo "# checking for fixed version update: askedFor(${bitcoinVersion}) available(${bitcoinVersion})" @@ -106,10 +105,10 @@ elif [ "${mode}" = "custom" ]; then echo "# Input the version you would like to install and press ENTER." echo "# Examples (versions below 22 are not supported):" echo "22.0rc3" - echo "22.0" + echo "24.0.1" echo read bitcoinVersion - if [ $(echo ${bitcoinVersion} | grep -c "rc") -gt 0 ];then + if [ $(echo ${bitcoinVersion} | grep -c "rc") -gt 0 ]; then cutVersion=$(echo ${bitcoinVersion} | awk -F"r" '{print $1}') rcVersion=$(echo ${bitcoinVersion} | awk -F"r" '{print $2}') # https://bitcoincore.org/bin/bitcoin-core-22.0/test.rc3/ @@ -119,11 +118,11 @@ elif [ "${mode}" = "custom" ]; then fi if curl --output /dev/null --silent --head --fail \ - https://bitcoincore.org/bin/bitcoin-core-${pathVersion}/SHA256SUMS.asc; then + https://bitcoincore.org/bin/bitcoin-core-${pathVersion}/SHA256SUMS.asc; then echo "# OK version exists at https://bitcoincore.org/bin/bitcoin-core-${pathVersion}" echo "# Press ENTER to proceed to install Bitcoin Core $bitcoinVersion or CTRL+C to abort." read key - else + else echo "# FAIL $bitcoinVersion does not exist" echo echo "# Press ENTER to return to the main menu" @@ -133,8 +132,8 @@ elif [ "${mode}" = "custom" ]; then fi # JOINED INSTALL -if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom" ]; then - +if [ "${mode}" = "tested" ] || [ "${mode}" = "reckless" ] || [ "${mode}" = "custom" ]; then + displayInfo if [ "$installedVersion" = "$bitcoinVersion" ]; then @@ -143,48 +142,48 @@ if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom" exit 0 fi - echo + echo echo "# clean & change into download directory" sudo rm -rf "${downloadDir}" mkdir -p "${downloadDir}" cd "${downloadDir}" || exit 1 - # download signed binary sha256 hash sum file - wget https://bitcoincore.org/bin/bitcoin-core-${pathVersion}/SHA256SUMS - # download signed binary sha256 hash sum file and check - wget https://bitcoincore.org/bin/bitcoin-core-${pathVersion}/SHA256SUMS.asc + echo "# Enter the github username of a signer. Find the list of signers at: " + echo "https://github.com/bitcoin-core/guix.sigs/tree/main/${pathVersion}" + echo "# Example for Peter Wuille (https://github.com/sipa):" + echo "sipa" + echo "# example for Emzy (https://github.com/Emzy):" + echo "Emzy" + read customSigner - echo "# Paste the PGP pubkey fingerprint of a signer." - echo "# Example for W. J. van der Laan (https://github.com/laanwj):" - echo "71A3 B167 3540 5025 D447 E8F2 7481 0B01 2346 C9A6" - echo "" - read customKey - - if [ ${#customKey} -eq 0 ];then - customKey=$laanwjPGP + if [ ${#customSigner} -eq 0 ]; then + customSigner=$fallbackSigner fi - # receive signer key - if ! gpg --recv-key "$customKey" - then - echo - echo "# FAIL # Could not download the PGP pubkey" - echo - echo "See the signers of this release:" - echo - gpg --verify SHA256SUMS.asc - echo + echo "# Download the binary sha256 hash sum file" + wget -O all.SHA256SUMS https://raw.githubusercontent.com/bitcoin-core/guix.sigs/main/${pathVersion}/${customSigner}/all.SHA256SUMS + echo "# Download signature of the binary sha256 hash sum file" + wget -O all.SHA256SUMS.asc https://raw.githubusercontent.com/bitcoin-core/guix.sigs/main/${pathVersion}/${customSigner}/all.SHA256SUMS.asc + + echo "# Download PGP pubkey of ${customSigner}" + if ! wget -O pubkey.asc https://github.com/${customSigner}.gpg; then + echo "# FAIL # Could not down + load the PGP pubkey of ${customSigner}" + rm pubkey.asc exit 1 fi - - verifyResult=$(LANG=en_US.utf8; gpg --verify SHA256SUMS.asc 2>&1) - goodSignature=$(echo ${verifyResult} | grep 'Good signature' -c) - echo "goodSignature(${goodSignature})" - correctKey=$(echo ${verifyResult} | grep "${customKey}" -c) - echo "correctKey(${correctKey})" - if [ ${correctKey} -lt 1 ] || [ ${goodSignature} -lt 1 ]; then + echo "# Import PGP pubkey of ${customSigner}" + if ! gpg --import pubkey.asc; then + echo "# FAIL # Couldn't import the PGP pubkey of ${customSigner}" + rm pubkey.asc + exit 1 + fi + rm pubkey.asc + + echo "# Checking PGP signature of the binary sha256 hash sum file" + if ! gpg --verify all.SHA256SUMS.asc; then echo - echo "# BUILD FAILED --> PGP Verify not OK / signature(${goodSignature}) verify(${correctKey})" + echo "# BUILD FAILED --> the signature does not match" exit 1 else echo @@ -195,18 +194,15 @@ if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom" echo "# Downloading Bitcoin Core v${bitcoinVersion} for ${bitcoinOSversion} ..." binaryName="bitcoin-${bitcoinVersion}-${bitcoinOSversion}.tar.gz" wget https://bitcoincore.org/bin/bitcoin-core-${pathVersion}/${binaryName} - if [ ! -f "./${binaryName}" ] - then + if [ ! -f "./${binaryName}" ]; then echo "# FAIL # Downloading BITCOIN BINARY did not succeed." exit 1 fi - echo "# Checking binary checksum ..." - checksumTest=$(sha256sum -c --ignore-missing SHA256SUMS ${binaryName} 2>/dev/null \ - | grep -c "${binaryName}: OK") - if [ "${checksumTest}" -eq 0 ]; then + echo "# Checking the binary checksum ..." + if ! sha256sum -c --ignore-missing all.SHA256SUMS; then # get the sha256 value for the corresponding platform from signed hash sum file - bitcoinSHA256=$(grep -i "${binaryName}}" SHA256SUMS | cut -d " " -f1) + bitcoinSHA256=$(grep -i "${binaryName}}" all.SHA256SUMS | cut -d " " -f1) echo "# FAIL # Downloaded BITCOIN BINARY CHECKSUM:" echo "$(sha256sum ${binaryName})" echo "NOT matching SHA256 checksum:" @@ -217,16 +213,16 @@ if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom" echo "# OK --> VERIFIED BITCOIN CORE BINARY CHECKSUM IS CORRECT" echo fi -fi +fi -if [ "${mode}" = "tested" ]||[ "${mode}" = "custom" ]; then +if [ "${mode}" = "tested" ] || [ "${mode}" = "custom" ]; then bitcoinInterimsUpdateNew="${bitcoinVersion}" elif [ "${mode}" = "reckless" ]; then bitcoinInterimsUpdateNew="reckless" fi # JOINED INSTALL -if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom" ];then +if [ "${mode}" = "tested" ] || [ "${mode}" = "reckless" ] || [ "${mode}" = "custom" ]; then # install echo "# Stopping bitcoind ..." @@ -238,8 +234,7 @@ if [ "${mode}" = "tested" ]||[ "${mode}" = "reckless" ]||[ "${mode}" = "custom" tar -xvf ${binaryName} sudo install -m 0755 -o root -g root -t /usr/local/bin/ bitcoin-${bitcoinVersion}/bin/* sleep 3 - installed=$(bitcoind --version | grep "${bitcoinVersion}" -c) - if [ ${installed} -lt 1 ]; then + if ! bitcoind --version | grep "${bitcoinVersion}"; then echo echo "# BUILD FAILED --> Was not able to install bitcoind version(${bitcoinVersion})" exit 1 diff --git a/home.admin/config.scripts/blitz.display.sh b/home.admin/config.scripts/blitz.display.sh index 268ba455d..b035a6ce4 100644 --- a/home.admin/config.scripts/blitz.display.sh +++ b/home.admin/config.scripts/blitz.display.sh @@ -140,7 +140,7 @@ if [ "${command}" == "rotate" ]; then sed -i "s/^dtoverlay=.*/dtoverlay=waveshare35a:rotate=90/g" /boot/config.txt rm /etc/X11/xorg.conf.d/40-libinput.conf 2>/dev/null - /home/admin/config.scripts/blitz.conf.sh set lcdrotate 1 2>/dev/null + /home/admin/config.scripts/blitz.conf.sh set lcdrotate 1 1>/dev/null 2>/dev/null echo "# OK - a restart is needed: sudo shutdown -r now" # TURN ROTATE OFF @@ -165,7 +165,7 @@ EOF fi # update raspiblitz conf - /home/admin/config.scripts/blitz.conf.sh set lcdrotate 0 2>/dev/null + /home/admin/config.scripts/blitz.conf.sh set lcdrotate 0 1>/dev/null 2>/dev/null echo "OK - a restart is needed: sudo shutdown -r now" else diff --git a/home.admin/config.scripts/blitz.fatpack.sh b/home.admin/config.scripts/blitz.fatpack.sh index bd7146ff0..e4f106fad 100755 --- a/home.admin/config.scripts/blitz.fatpack.sh +++ b/home.admin/config.scripts/blitz.fatpack.sh @@ -9,6 +9,15 @@ if [ "$EUID" -ne 0 ] exit 1 fi +apt_install() { + apt install -y ${@} + if [ $? -eq 100 ]; then + echo "FAIL! apt failed to install needed packages!" + echo ${@} + exit 1 + fi +} + echo "# getting default user/repo from build_sdcard.sh" sudo cp /home/admin/raspiblitz/build_sdcard.sh /home/admin/build_sdcard.sh sudo chmod +x /home/admin/build_sdcard.sh 2>/dev/null @@ -48,6 +57,7 @@ sudo /home/admin/config.scripts/blitz.web.ui.sh on "${defaultWEBUIuser}" "${defa # set build code as new www default sudo rm -r /home/admin/assets/nginx/www_public +mkdir -p /home/admin/assets/nginx/www_public sudo cp -a /home/blitzapi/blitz_web/build/* /home/admin/assets/nginx/www_public sudo chown admin:admin /home/admin/assets/nginx/www_public sudo rm -r /home/blitzapi/blitz_web/build/* diff --git a/home.admin/config.scripts/blitz.web.api.sh b/home.admin/config.scripts/blitz.web.api.sh index ec9831c65..e90abb981 100644 --- a/home.admin/config.scripts/blitz.web.api.sh +++ b/home.admin/config.scripts/blitz.web.api.sh @@ -33,7 +33,7 @@ if [ "$1" = "update-config" ]; then fi # prepare config update - cd /home/blitzapi/blitz_api + cd /home/blitzapi/blitz_api || exit 1 secret=$(cat ./.env 2>/dev/null | grep "secret=" | cut -d "=" -f2) cp ./.env_sample ./.env dateStr=$(date) @@ -44,7 +44,7 @@ if [ "$1" = "update-config" ]; then # configure access token secret if [ "${secret}" == "" ] || [ "${secret}" == "please_please_update_me_please" ]; then echo "# init secret ..." - secret=$(dd if=/dev/urandom bs=256 count=1 2> /dev/null | shasum -a256 | cut -d " " -f1) + secret=$(dd if=/dev/urandom bs=256 count=1 2>/dev/null | shasum -a256 | cut -d " " -f1) else echo "# use existing secret" fi @@ -78,13 +78,13 @@ if [ "$1" = "update-config" ]; then sed -i "s/^lnd_grpc_ip=.*/lnd_grpc_ip=127.0.0.1/g" ./.env sed -i "s/^lnd_macaroon=.*/lnd_macaroon=${adminMacaroon}/g" ./.env sed -i "s/^lnd_cert=.*/lnd_cert=${tlsCert}/g" ./.env - if [ "${chain}" == "main" ];then + if [ "${chain}" == "main" ]; then L2rpcportmod=0 portprefix="" - elif [ "${chain}" == "test" ];then + elif [ "${chain}" == "test" ]; then L2rpcportmod=1 portprefix=1 - elif [ "${chain}" == "sig" ];then + elif [ "${chain}" == "sig" ]; then L2rpcportmod=3 portprefix=3 fi @@ -96,7 +96,7 @@ if [ "$1" = "update-config" ]; then echo "# CONFIG Web API Lightning --> CL" sed -i "s/^ln_node=.*/ln_node=cln_jrpc/g" ./.env - sed -i "s/^cln_jrpc_path=.*/cln_jrpc_path="/mnt/hdd/app-data/.lightning/bitcoin/lightning-rpc"/g" ./.env + sed -i "s#^cln_jrpc_path=.*#cln_jrpc_path=\"/mnt/hdd/app-data/.lightning/bitcoin/lightning-rpc\"#g" ./.env # make sure cln-grpc is on # sudo /home/admin/config.scripts/cl-plugin.cln-grpc.sh on mainnet @@ -122,9 +122,9 @@ if [ "$1" = "update-config" ]; then fi else - echo "# CONFIG Web API ... still in setup, skip bitcoin & lightning" - sed -i "s/^network=.*/network=/g" ./.env - sed -i "s/^ln_node=.*/ln_node=/g" ./.env + echo "# CONFIG Web API ... still in setup, skip bitcoin & lightning" + sed -i "s/^network=.*/network=/g" ./.env + sed -i "s/^ln_node=.*/ln_node=/g" ./.env fi echo "# '.env' config updates - blitzapi maybe needs to be restarted" @@ -230,12 +230,12 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then fi /usr/sbin/usermod --append --groups bitcoin blitzapi # symlink the CLN data dir for blitzapi - sudo rm -rf /home/blitzapi/.lightning # not a symlink.. delete it silently + sudo rm -rf /home/blitzapi/.lightning # not a symlink.. delete it silently # create symlink sudo -u blitzapi ln -s /mnt/hdd/app-data/.lightning /home/blitzapi/ cd /home/blitzapi || exit 1 - + # git clone https://github.com/fusion44/blitz_api.git /home/blitzapi/blitz_api echo "# clone github: ${GITHUB_USER}/${GITHUB_REPO}" if ! sudo -u blitzapi git clone https://github.com/${GITHUB_USER}/${GITHUB_REPO}.git blitz_api; then @@ -264,7 +264,7 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then echo "error='pip install failed'" exit 1 fi - + # prepare systemd service echo " [Unit] @@ -330,7 +330,7 @@ if [ "$1" = "update-code" ]; then echo "# Update Web API CODE" systemctl stop blitzapi sudo chown -R blitzapi:blitzapi /home/blitzapi/blitz_api - cd /home/blitzapi/blitz_api + cd /home/blitzapi/blitz_api || exit 1 if [ "$currentBranch" == "" ]; then currentBranch=$(sudo -u blitzapi git rev-parse --abbrev-ref HEAD) fi diff --git a/home.admin/config.scripts/blitz.web.sh b/home.admin/config.scripts/blitz.web.sh index ce3ffb1b2..510a5c147 100755 --- a/home.admin/config.scripts/blitz.web.sh +++ b/home.admin/config.scripts/blitz.web.sh @@ -72,7 +72,7 @@ EOF sudo mkdir -p /var/www/letsencrypt/.well-known/acme-challenge sudo chown -R admin:www-data /var/www/letsencrypt sudo cp -a /home/admin/assets/nginx/www_public/ /var/www/public - sudo chown www-data:www-data /var/www/public + sudo chown -R www-data:www-data /var/www/public sudo cp /home/admin/assets/nginx/snippets/* /etc/nginx/snippets/ # enable public site & API redirect diff --git a/home.admin/config.scripts/bonus.btcpayserver.sh b/home.admin/config.scripts/bonus.btcpayserver.sh index d28bbb26f..625487456 100644 --- a/home.admin/config.scripts/bonus.btcpayserver.sh +++ b/home.admin/config.scripts/bonus.btcpayserver.sh @@ -5,7 +5,7 @@ # https://github.com/dgarage/NBXplorer/tags NBXplorerVersion="v2.3.62" # https://github.com/btcpayserver/btcpayserver/releases -BTCPayVersion="v1.8.2" +BTCPayVersion="v1.9.1" # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then @@ -58,25 +58,20 @@ nomigrateevts=1 function BtcPayConfig() { # set thumbprint FINGERPRINT=$(openssl x509 -noout -fingerprint -sha256 -inform pem -in /home/btcpay/.lnd/tls.cert | cut -d"=" -f2) - if sudo ls /mnt/hdd/app-data/.btcpayserver/Main/sqllite.db 1>/dev/null 2>&1; then - echo "# sqlite database exists" - databaseOption="# keep using sqlite as /mnt/hdd/app-data/.btcpayserver/Main/sqllite.db exists (configured in the btcpayserver.service)" + # set up postgres + if sudo -u postgres psql -c '\l' | grep btcpaymainnet; then + echo "# btcpaymainnet database already exists" else - echo "# sqlite database does not exist, using postgresql" - databaseOption="postgres=User ID=btcpay;Host=localhost;Port=5432;Application Name=btcpay;MaxPoolSize=20;Database=btcpaymainnet;Password='raspiblitz';" - if sudo -u postgres psql -c '\l' | grep btcpaymainnet; then - echo "# btcpaymainnet database already exists" - else - echo "# Generate the database for btcpay" - sudo -u postgres psql -c "CREATE DATABASE btcpaymainnet TEMPLATE template0 LC_CTYPE 'C' LC_COLLATE 'C' ENCODING 'UTF8';" - sudo -u postgres psql -c "create user btcpay with encrypted password 'raspiblitz';" - sudo -u postgres psql -c "grant all privileges on database btcpaymainnet to btcpay;" - fi - echo "# List databases with: sudo -u postgres psql -c '\l'" - sudo -u postgres psql -c '\l' + echo "# Generate the database for btcpay" + sudo -u postgres psql -c "CREATE DATABASE btcpaymainnet TEMPLATE template0 LC_CTYPE 'C' LC_COLLATE 'C' ENCODING 'UTF8';" + sudo -u postgres psql -c "create user btcpay with encrypted password 'raspiblitz';" + sudo -u postgres psql -c "grant all privileges on database btcpaymainnet to btcpay;" fi + echo "# List databases with: sudo -u postgres psql -c '\l'" + sudo -u postgres psql -c '\l' echo "# Regenerate the btcpayserver settings (includes the LND TLS thumbprint)" # https://docs.btcpayserver.org/Deployment/ManualDeploymentExtended/#3-create-a-configuration-file + sudo -u btcpay mkdir -p /home/btcpay/.btcpayserver/Main echo " ### Global settings ### network=mainnet @@ -85,20 +80,21 @@ network=mainnet port=23000 bind=127.0.0.1 externalurl=https://$BTCPayDomain +socksendpoint=127.0.0.1:9050 ### NBXplorer settings ### BTC.explorer.url=http://127.0.0.1:24444/ BTC.lightning=type=lnd-rest;server=https://127.0.0.1:8080/;macaroonfilepath=/home/btcpay/admin.macaroon;certthumbprint=$FINGERPRINT ### Database ### -${databaseOption} +postgres=User ID=btcpay;Host=localhost;Port=5432;Application Name=btcpay;MaxPoolSize=20;Database=btcpaymainnet;Password='raspiblitz'; explorer.postgres=User ID=nbxplorer;Host=localhost;Port=5432;Application Name=nbxplorer;MaxPoolSize=20;Database=nbxplorermainnet;Password='raspiblitz'; " | sudo -u btcpay tee /home/btcpay/.btcpayserver/Main/settings.config } function BtcPayService() { if sudo ls /mnt/hdd/app-data/.btcpayserver/Main/sqllite.db 1>/dev/null 2>&1; then - echo "# sqlite database exists" + echo "# sqlite database exists - will be ignored after the migration to postgresql" databaseOption=" -- --sqlitefile=sqllite.db" else echo "# sqlite database does not exist, using postgresql" @@ -619,7 +615,6 @@ WantedBy=multi-user.target echo "# Because the system is not 'ready' the service 'btcpayserver' will not be started at this point .. it is enabled and will start on next reboot" fi - sudo -u btcpay mkdir -p /home/btcpay/.btcpayserver/Main/ if [ "${lnd}" = on ]; then /home/admin/config.scripts/bonus.btcpayserver.sh write-tls-macaroon fi diff --git a/home.admin/config.scripts/bonus.fulcrum.sh b/home.admin/config.scripts/bonus.fulcrum.sh index bf008cc9a..fcc1d1502 100644 --- a/home.admin/config.scripts/bonus.fulcrum.sh +++ b/home.admin/config.scripts/bonus.fulcrum.sh @@ -1,7 +1,7 @@ #!/bin/bash # https://github.com/cculianu/Fulcrum/releases -fulcrumVersion="1.7.0" +fulcrumVersion="1.9.1" # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then @@ -12,7 +12,6 @@ if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then exit 1 fi - if [ "$1" = on ]; then # ?wait until txindex finishes? /home/admin/config.scripts/network.txindex.sh on @@ -26,6 +25,7 @@ if [ "$1" = on ]; then source <(/home/admin/_cache.sh get state) if [ "${state}" == "ready" ]; then + echo "# Restarting bitcoind" sudo systemctl restart bitcoind fi @@ -51,26 +51,25 @@ if [ "$1" = on ]; then # get the PGP key curl https://raw.githubusercontent.com/Electron-Cash/keys-n-hashes/master/pubkeys/calinkey.txt | sudo -u fulcrum gpg --import - # look for 'Good signature' + echo "# Look for 'Good signature'" sudo -u fulcrum gpg --verify Fulcrum-${fulcrumVersion}-${build}.tar.gz.asc || exit 1 - # look for 'OK' + echo "# Look for 'OK'" sudo -u fulcrum sha256sum -c Fulcrum-${fulcrumVersion}-${build}.tar.gz.sha256sum --ignore-missing || exit 1 - # decompress + echo "# Unpack" sudo -u fulcrum tar -xvf Fulcrum-${fulcrumVersion}-${build}.tar.gz - # create the database directory in /mnt/hdd/app-storage (on the disk) + echo "# Create the database directory in /mnt/hdd/app-storage (on the disk)" sudo mkdir -p /mnt/hdd/app-storage/fulcrum/db sudo chown -R fulcrum:fulcrum /mnt/hdd/app-storage/fulcrum - # create a symlink to /home/fulcrum/.fulcrum + echo "# Create a symlink to /home/fulcrum/.fulcrum" sudo ln -s /mnt/hdd/app-storage/fulcrum /home/fulcrum/.fulcrum sudo chown -R fulcrum:fulcrum /home/fulcrum/.fulcrum - # Create a config file - echo "# Getting RPC credentials from the bitcoin.conf" - #read PASSWORD_B + echo "# Create a config file" + echo "# Get the RPC credentials from the bitcoin.conf" RPC_USER=$(sudo cat /mnt/hdd/bitcoin/bitcoin.conf | grep rpcuser | cut -c 9-) PASSWORD_B=$(sudo cat /mnt/hdd/bitcoin/bitcoin.conf | grep rpcpassword | cut -c 13-) echo "\ @@ -96,7 +95,7 @@ tcp = 0.0.0.0:50021 # ssl via nginx " | sudo -u fulcrum tee /home/fulcrum/.fulcrum/fulcrum.conf - # Create a systemd service + echo "# Create a systemd service" echo "\ [Unit] Description=Fulcrum @@ -119,12 +118,10 @@ WantedBy=multi-user.target sudo systemctl enable fulcrum if [ "${state}" == "ready" ]; then + echo "# Starting the fulcrum.service" sudo systemctl start fulcrum fi - # sudo journalctl -fu fulcrum - # sudo systemctl status fulcrum - sudo ufw allow 50021 comment 'Fulcrum TCP' sudo ufw allow 50022 comment 'Fulcrum SSL' @@ -135,7 +132,7 @@ WantedBy=multi-user.target elif [ ${isConfigured} -eq 0 ]; then isStream=$(sudo cat /etc/nginx/nginx.conf 2>/dev/null | grep -c 'stream {') if [ ${isStream} -eq 0 ]; then - echo " + echo " stream { upstream fulcrum { server 127.0.0.1:50021; @@ -152,9 +149,9 @@ stream { } }" | sudo tee -a /etc/nginx/nginx.conf - elif [ ${isStream} -eq 1 ]; then - sudo truncate -s-2 /etc/nginx/nginx.conf - echo " + elif [ ${isStream} -eq 1 ]; then + sudo truncate -s-2 /etc/nginx/nginx.conf + echo " upstream fulcrum { server 127.0.0.1:50021; } @@ -184,8 +181,10 @@ stream { # setting value in raspiblitz config /home/admin/config.scripts/blitz.conf.sh set fulcrum "on" -fi + echo "# Follow the logs with the command:" + echo "sudo journalctl -fu fulcrum" +fi if [ "$1" = off ]; then sudo systemctl disable fulcrum diff --git a/home.admin/config.scripts/bonus.joinmarket.sh b/home.admin/config.scripts/bonus.joinmarket.sh index d36f00b46..36cfdc503 100755 --- a/home.admin/config.scripts/bonus.joinmarket.sh +++ b/home.admin/config.scripts/bonus.joinmarket.sh @@ -6,7 +6,7 @@ # https://github.com/openoms/joininbox # https://github.com/openoms/joininbox/tags -JBTAG="v0.7.6" # installs JoinMarket v0.9.9 +JBTAG="v0.7.7" # installs JoinMarket v0.9.9 # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then @@ -159,25 +159,6 @@ if [ "$1" = "1" ] || [ "$1" = "on" ]; then sudo /home/admin/config.scripts/bonus.joinmarket.sh install fi - # make sure the Bitcoin Core wallet is on - /home/admin/config.scripts/network.wallet.sh on - if [ $(/usr/local/bin/bitcoin-cli -conf=/mnt/hdd/bitcoin/bitcoin.conf listwallets | grep -c wallet.dat) -eq 0 ]; then - echo "# Create a non-descriptor wallet.dat" - /usr/local/bin/bitcoin-cli -conf=/mnt/hdd/bitcoin/bitcoin.conf -named createwallet wallet_name=wallet.dat descriptors=false - else - isDescriptor=$(/usr/local/bin/bitcoin-cli -conf=/mnt/hdd/bitcoin/bitcoin.conf -rpcwallet=wallet.dat getwalletinfo | grep -c '"descriptors": true,') - if [ "$isDescriptor" -gt 0 ]; then - # unload - bitcoin-cli unloadwallet wallet.dat - echo "# Move the wallet.dat with descriptors to /mnt/hdd/bitcoin/descriptors" - sudo mv /mnt/hdd/bitcoin/wallet.dat /mnt/hdd/bitcoin/descriptors - echo "# Create a non-descriptor wallet.dat" - bitcoin-cli -conf=/mnt/hdd/bitcoin/bitcoin.conf -named createwallet wallet_name=wallet.dat descriptors=false - else - echo "# The non-descriptor wallet.dat is loaded in bitcoind." - fi - fi - # store JoinMarket data on HDD mkdir /mnt/hdd/app-data/.joinmarket 2>/dev/null @@ -212,6 +193,25 @@ if [ -z \"\$TMUX\" ]; then fi " | sudo -u joinmarket tee -a /home/joinmarket/.bashrc + # make sure the Bitcoin Core wallet is on + /home/admin/config.scripts/network.wallet.sh on + if [ $(/usr/local/bin/bitcoin-cli -conf=/mnt/hdd/bitcoin/bitcoin.conf listwallets | grep -c wallet.dat) -eq 0 ]; then + echo "# Create a non-descriptor wallet.dat" + /usr/local/bin/bitcoin-cli -conf=/mnt/hdd/bitcoin/bitcoin.conf -named createwallet wallet_name=wallet.dat descriptors=false + else + isDescriptor=$(/usr/local/bin/bitcoin-cli -conf=/mnt/hdd/bitcoin/bitcoin.conf -rpcwallet=wallet.dat getwalletinfo | grep -c '"descriptors": true,') + if [ "$isDescriptor" -gt 0 ]; then + # unload + bitcoin-cli unloadwallet wallet.dat + echo "# Move the wallet.dat with descriptors to /mnt/hdd/bitcoin/descriptors" + sudo mv /mnt/hdd/bitcoin/wallet.dat /mnt/hdd/bitcoin/descriptors + echo "# Create a non-descriptor wallet.dat" + bitcoin-cli -conf=/mnt/hdd/bitcoin/bitcoin.conf -named createwallet wallet_name=wallet.dat descriptors=false + else + echo "# The non-descriptor wallet.dat is loaded in bitcoind." + fi + fi + # configure joinmarket (includes a check if it is installed) if sudo -u joinmarket /home/joinmarket/start.joininbox.sh; then echo "# Start to use by logging in to the 'joinmarket' user with:" diff --git a/home.admin/config.scripts/bonus.lit.sh b/home.admin/config.scripts/bonus.lit.sh index b8b94c51d..d624e2e4d 100644 --- a/home.admin/config.scripts/bonus.lit.sh +++ b/home.admin/config.scripts/bonus.lit.sh @@ -1,7 +1,7 @@ #!/bin/bash # https://github.com/lightninglabs/lightning-terminal/releases -LITVERSION="0.8.6-alpha" +LITVERSION="0.9.2-alpha" # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then @@ -14,15 +14,18 @@ fi # check who signed the release in https://github.com/lightninglabs/lightning-terminal/releases PGPsigner="ellemouton" -if [ $PGPsigner = ellemouton ];then +if [ $PGPsigner = ellemouton ]; then PGPpkeys="https://github.com/${PGPsigner}.gpg" PGPcheck="D7D916376026F177" -elif [ $PGPsigner = guggero ];then +elif [ $PGPsigner = guggero ]; then PGPpkeys="https://keybase.io/${PGPsigner}/pgp_keys.asc" PGPcheck="03DB6322267C373B" -elif [ $PGPsigner = roasbeef ];then +elif [ $PGPsigner = roasbeef ]; then PGPpkeys="https://keybase.io/${PGPsigner}/pgp_keys.asc " PGPcheck="3BBD59E99B280306" +elif [ $PGPsigner = ellemouton ]; then + PGPpkeys="https://keybase.io/ellemo/pgp_keys.asc " + PGPcheck="D7D916376026F17" fi source /mnt/hdd/raspiblitz.conf diff --git a/home.admin/config.scripts/bonus.lnbits.sh b/home.admin/config.scripts/bonus.lnbits.sh index a2c7a02dd..1337f7b6c 100644 --- a/home.admin/config.scripts/bonus.lnbits.sh +++ b/home.admin/config.scripts/bonus.lnbits.sh @@ -3,7 +3,7 @@ # https://github.com/lnbits/lnbits # https://github.com/lnbits/lnbits/releases -tag="0.10.2" +tag="0.10.4.1" VERSION="${tag}" # command info @@ -781,7 +781,7 @@ After=bitcoind.service [Service] WorkingDirectory=/home/lnbits/lnbits ExecStartPre=/home/admin/config.scripts/bonus.lnbits.sh prestart -ExecStart=/bin/sh -c 'cd /home/lnbits/lnbits && poetry run lnbits --port 5000' +ExecStart=/bin/sh -c 'cd /home/lnbits/lnbits && poetry run lnbits --port 5000 --host 0.0.0.0' User=lnbits Restart=always TimeoutSec=120 diff --git a/home.admin/config.scripts/bonus.lnproxy.sh b/home.admin/config.scripts/bonus.lnproxy.sh index 3e5e75a81..c2639c783 100644 --- a/home.admin/config.scripts/bonus.lnproxy.sh +++ b/home.admin/config.scripts/bonus.lnproxy.sh @@ -1,9 +1,7 @@ #!/bin/bash # https://github.com/lnproxy/lnproxy/commits/main -LNPROXYVERSION="423723b58cc45daa2fdf6c8b22537d560aca4d7a" -# https://github.com/lnproxy/lnproxy-webui/commits/main -WEBUIVERSION=24d291c884a0b60126c1915301f29c893900a155 +LNPROXYVERSION="7c8a14106b42cfd89471c1dc02d7baab1122dfa2" # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then @@ -20,33 +18,21 @@ localip=$(hostname -I | awk '{print $1}') if [ "$1" = "menu" ]; then if systemctl is-active --quiet lnproxy; then - # get network info torAddress=$(sudo cat /mnt/hdd/tor/lnproxy/hostname 2>/dev/null) - fingerprint=$(openssl x509 -in /mnt/hdd/app-data/nginx/tls.cert -fingerprint -noout | cut -d"=" -f2) + sudo /home/admin/config.scripts/blitz.display.sh qr "${torAddress}" + whiptail --title " lnproxy server API" --msgbox "\ +Use your hidden service as a relay on the lnproxy Tor website: +dx7pn6ehykq6cadce4bjbxn5tf64z7e3fufpxgxce7n4f5eja476cpyd.onion +Your address to be used as the relay: +http://${torAddress}/spec + +To use the API from another computer on your LAN: +curl -k https://${localip}:4748/api/{invoice}?routing_msat={budget} - if [ "${runBehindTor}" = "on" ] && [ -n "${torAddress}" ]; then - # Info with Tor - sudo /home/admin/config.scripts/blitz.display.sh qr "${torAddress}" - whiptail --title " lnproxy-webui and API" --msgbox "\ -Open in your local web browser: -http://${localip}:4748 -https://${localip}:4749 with Fingerprint: -${fingerprint}\n -Hidden Service address for Tor Browser (see LCD for QR): -${torAddress}\n -To use the API: -curl -k https://${localip}:4749/api/{invoice}?routing_msat={budget}\n The Tor Hidden Service address to share for using the API: ${torAddress}/api -" 20 70 - sudo /home/admin/config.scripts/blitz.display.sh hide - else - # Info without Tor - whiptail --title " lnproxy-webui " --msgbox "Open in your local web browser: -http://${localip}:4748\n -Activate Tor to access the web interface from outside your local network. -" 15 57 - fi +" 16 78 + sudo /home/admin/config.scripts/blitz.display.sh hide echo "# please wait ..." else echo "# *** LNPROXY IS NOT INSTALLED ***" @@ -138,53 +124,6 @@ EOF echo "# OK - the lnproxy.service is enabled, to start manually use: sudo systemctl start lnproxy" fi - # lnproxy-webui - cd /home/lnproxy/ || exit 1 - sudo -u lnproxy git clone https://github.com/lnproxy/lnproxy-webui - cd /home/lnproxy/lnproxy-webui || exit 1 - sudo -u lnproxy git reset --hard ${WEBUIVERSION} || exit 1 - - # build - sudo -u lnproxy /usr/local/go/bin/go get lnproxy-webui - sudo -u lnproxy /usr/local/go/bin/go build - - # create systemd service - cat </dev/null) + echo + echo "# Use your hidden service as a relay on the lnproxy Tor website:" + echo "dx7pn6ehykq6cadce4bjbxn5tf64z7e3fufpxgxce7n4f5eja476cpyd.onion" + echo "# Your address to be used as the relay:" + echo "http://${torAddress}/spec" + echo "# To use the API from another computer on your LAN:" + echo "curl -k https://${localip}:4748/api/{invoice}?routing_msat={budget}\n" + echo "# The Tor Hidden Service address to share for using the API:" + echo "${torAddress}/api" echo "# More info at:" - echo "https://github.com/lnproxy/lnproxy" + echo "https://github.com/lnproxy" exit 0 fi @@ -233,15 +175,22 @@ if [ "$1" = "0" ] || [ "$1" = "off" ]; then # remove systemd services sudo systemctl disable --now lnproxy sudo rm -f /etc/systemd/system/lnproxy.service - sudo systemctl disable --now lnproxy-webui - sudo rm -f /etc/systemd/system/lnproxy-webui.service # remove Tor service /home/admin/config.scripts/tor.onion-service.sh off lnproxy + sudo rm /etc/nginx/sites-available/lnproxy_ssl.conf + sudo rm /etc/nginx/sites-available/lnproxy_tor.conf + sudo rm /etc/nginx/sites-available/lnproxy_tor_ssl.conf + sudo rm /etc/nginx/sites-enabled/lnproxy_ssl.conf + sudo rm /etc/nginx/sites-enabled/lnproxy_tor.conf + sudo rm /etc/nginx/sites-enabled/lnproxy_tor_ssl.conf + + sudo nginx -t || exit 1 + sudo systemctl reload nginx + # close ports on firewall sudo ufw delete allow 4748 - sudo ufw delete allow 4749 # setting value in raspi blitz config /home/admin/config.scripts/blitz.conf.sh set lnproxy "off" diff --git a/home.admin/config.scripts/bonus.postgresql.sh b/home.admin/config.scripts/bonus.postgresql.sh index ed5fd10bb..61ae25ebb 100644 --- a/home.admin/config.scripts/bonus.postgresql.sh +++ b/home.admin/config.scripts/bonus.postgresql.sh @@ -59,6 +59,10 @@ if [ "$command" = "1" ] || [ "$command" = "on" ]; then sudo rm -rf $postgres_datadir # not a symlink.. delete it silently sudo ln -s /mnt/hdd/app-data/postgresql /var/lib/ fi + + # always fix ownership + sudo chown -R postgres:postgres /mnt/hdd/app-data/postgresql + sudo systemctl enable postgresql sudo systemctl start postgresql diff --git a/home.admin/config.scripts/cl-plugin.cln-grpc.sh b/home.admin/config.scripts/cl-plugin.cln-grpc.sh index 5c652ea34..61f6e8d0f 100644 --- a/home.admin/config.scripts/cl-plugin.cln-grpc.sh +++ b/home.admin/config.scripts/cl-plugin.cln-grpc.sh @@ -45,6 +45,7 @@ function buildGRPCplugin() { echo "# delete old dir or binary" sudo rm -rf /home/bitcoin/cl-plugins-available/cln-grpc echo "# move to /home/bitcoin/cl-plugins-available/" + sudo mkdir -p /home/bitcoin/cl-plugins-available sudo -u bitcoin mv /home/bitcoin/cln-grpc-build/debug/cln-grpc /home/bitcoin/cl-plugins-available/ else echo "# - cln-grpc plugin was already built/installed" diff --git a/home.admin/config.scripts/lnd.check.sh b/home.admin/config.scripts/lnd.check.sh index 126fde020..22f9f2205 100755 --- a/home.admin/config.scripts/lnd.check.sh +++ b/home.admin/config.scripts/lnd.check.sh @@ -305,6 +305,39 @@ fi fi + ##### RPCMIDDLEWARE SECTION ##### + + # [rpcmiddleware] + sectionName="[Rr]pcmiddleware" + echo "# [${sectionName}] config ..." + + # make sure lnd config has a [rpcmiddleware] section + sectionExists=$(cat ${lndConfFile} | grep -c "^\[${sectionName}\]") + echo "# sectionExists(${sectionExists})" + if [ "${sectionExists}" == "0" ]; then + echo "# adding section [${sectionName}]" + echo " + [${sectionName}] + " | tee -a ${lndConfFile} + fi + + # get line number of [rpcmiddleware] section + sectionLine=$(cat ${lndConfFile} | grep -n "^\[${sectionName}\]" | cut -d ":" -f1) + echo "# sectionLine(${sectionLine})" + insertLine=$(expr $sectionLine + 1) + echo "# insertLine(${insertLine})" + fileLines=$(wc -l ${lndConfFile} | cut -d " " -f1) + echo "# fileLines(${fileLines})" + if [ ${fileLines} -lt ${insertLine} ]; then + echo "# adding new line for inserts" + echo " + " | tee -a ${lndConfFile} + fi + + # SET/UPDATE rpcmiddleware.enable + setting ${lndConfFile} ${insertLine} "rpcmiddleware.enable" "true" + + echo "# OK PRESTART DONE" ###################################################################### diff --git a/home.admin/config.scripts/lnd.install.sh b/home.admin/config.scripts/lnd.install.sh index c6e946f99..89544a1a0 100644 --- a/home.admin/config.scripts/lnd.install.sh +++ b/home.admin/config.scripts/lnd.install.sh @@ -4,7 +4,7 @@ ## based on https://raspibolt.github.io/raspibolt/raspibolt_40_lnd.html#lightning-lnd ## see LND releases: https://github.com/lightningnetwork/lnd/releases ### If you change here - make sure to also change interims version in lnd.update.sh #! -lndVersion="0.16.0-beta" +lndVersion="0.16.2-beta" # olaoluwa #PGPauthor="roasbeef" diff --git a/home.admin/config.scripts/lndlibs/README.md b/home.admin/config.scripts/lndlibs/README.md index ee11f32d2..312c98061 100644 --- a/home.admin/config.scripts/lndlibs/README.md +++ b/home.admin/config.scripts/lndlibs/README.md @@ -41,6 +41,7 @@ from . import walletunlocker_pb2 as walletunlocker__pb2 Make sure the first lines (ignore comments) of the `walletunlocker_pb2.py` look like the following for python3 compatibility: ``` +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import message as _message diff --git a/home.admin/config.scripts/lndlibs/lightning.proto b/home.admin/config.scripts/lndlibs/lightning.proto index bc9e720ad..48175bf47 100644 --- a/home.admin/config.scripts/lndlibs/lightning.proto +++ b/home.admin/config.scripts/lndlibs/lightning.proto @@ -567,9 +567,42 @@ service Lightning { /* lncli: `subscribecustom` SubscribeCustomMessages subscribes to a stream of incoming custom peer messages. + + To include messages with type outside of the custom range (>= 32768) lnd + needs to be compiled with the `dev` build tag, and the message type to + override should be specified in lnd's experimental protocol configuration. */ rpc SubscribeCustomMessages (SubscribeCustomMessagesRequest) returns (stream CustomMessage); + + /* lncli: `listaliases` + ListAliases returns the set of all aliases that have ever existed with + their confirmed SCID (if it exists) and/or the base SCID (in the case of + zero conf). + */ + rpc ListAliases (ListAliasesRequest) returns (ListAliasesResponse); + + /* + LookupHtlcResolution retrieves a final htlc resolution from the database. + If the htlc has no final resolution yet, a NotFound grpc status code is + returned. + */ + rpc LookupHtlcResolution (LookupHtlcResolutionRequest) + returns (LookupHtlcResolutionResponse); +} + +message LookupHtlcResolutionRequest { + uint64 chan_id = 1; + + uint64 htlc_index = 2; +} + +message LookupHtlcResolutionResponse { + // Settled is true is the htlc was settled. If false, the htlc was failed. + bool settled = 1; + + // Offchain indicates whether the htlc was resolved off-chain or on-chain. + bool offchain = 2; } message SubscribeCustomMessagesRequest { @@ -591,6 +624,9 @@ message SendCustomMessageRequest { bytes peer = 1; // Message type. This value needs to be in the custom range (>= 32768). + // To send a type < custom range, lnd needs to be compiled with the `dev` + // build tag, and the message type to override should be specified in lnd's + // experimental protocol configuration. uint32 type = 2; // Raw message data. @@ -630,6 +666,7 @@ enum OutputScriptType { SCRIPT_TYPE_NULLDATA = 6; SCRIPT_TYPE_NON_STANDARD = 7; SCRIPT_TYPE_WITNESS_UNKNOWN = 8; + SCRIPT_TYPE_WITNESS_V1_TAPROOT = 9; } message OutputDetail { @@ -919,6 +956,14 @@ message ChannelAcceptRequest { // The commitment type the initiator wishes to use for the proposed channel. CommitmentType commitment_type = 14; + + // Whether the initiator wants to open a zero-conf channel via the channel + // type. + bool wants_zero_conf = 15; + + // Whether the initiator wants to use the scid-alias channel type. This is + // separate from the feature bit. + bool wants_scid_alias = 16; } message ChannelAcceptResponse { @@ -979,6 +1024,13 @@ message ChannelAcceptResponse { The number of confirmations we require before we consider the channel open. */ uint32 min_accept_depth = 10; + + /* + Whether the responder wants this to be a zero-conf channel. This will fail + if either side does not have the scid-alias feature bit set. The minimum + depth field must be zero if this is true. + */ + bool zero_conf = 11; } message ChannelPoint { @@ -1475,6 +1527,24 @@ message Channel { // List constraints for the remote node. ChannelConstraints remote_constraints = 30; + + /* + This lists out the set of alias short channel ids that exist for a channel. + This may be empty. + */ + repeated uint64 alias_scids = 31; + + // Whether or not this is a zero-conf channel. + bool zero_conf = 32; + + // This is the confirmed / on-chain zero-conf SCID. + uint64 zero_conf_confirmed_scid = 33; + + // The configured alias name of our peer. + string peer_alias = 34; + + // This is the peer SCID alias. + uint64 peer_scid_alias = 35 [jstype = JS_STRING]; } message ListChannelsRequest { @@ -1488,12 +1558,33 @@ message ListChannelsRequest { empty, all channels will be returned. */ bytes peer = 5; + + // Informs the server if the peer alias lookup per channel should be + // enabled. It is turned off by default in order to avoid degradation of + // performance for existing clients. + bool peer_alias_lookup = 6; } message ListChannelsResponse { // The list of active channels repeated Channel channels = 11; } +message AliasMap { + /* + For non-zero-conf channels, this is the confirmed SCID. Otherwise, this is + the first assigned "base" alias. + */ + uint64 base_scid = 1; + + // The set of all aliases stored for the base SCID. + repeated uint64 aliases = 2; +} +message ListAliasesRequest { +} +message ListAliasesResponse { + repeated AliasMap alias_maps = 1; +} + enum Initiator { INITIATOR_UNKNOWN = 0; INITIATOR_LOCAL = 1; @@ -1558,6 +1649,15 @@ message ChannelCloseSummary { Initiator close_initiator = 12; repeated Resolution resolutions = 13; + + /* + This lists out the set of alias short channel ids that existed for the + closed channel. This may be empty. + */ + repeated uint64 alias_scids = 14; + + // The confirmed SCID for a zero-conf channel. + uint64 zero_conf_confirmed_scid = 15 [jstype = JS_STRING]; } enum ResolutionType { @@ -1831,6 +1931,9 @@ message GetInfoResponse { Indicates whether the HTLC interceptor API is in always-on mode. */ bool require_htlc_interceptor = 21; + + // Indicates whether final htlc resolutions are stored on disk. + bool store_final_htlc_resolutions = 22; } message GetRecoveryInfoRequest { @@ -1903,6 +2006,11 @@ message CloseChannelRequest { // A manual fee rate set in sat/vbyte that should be used when crafting the // closure transaction. uint64 sat_per_vbyte = 6; + + // The maximum fee rate the closer is willing to pay. + // + // NOTE: This field is only respected if we're the initiator of the channel. + uint64 max_fee_per_vbyte = 7; } message CloseStatusUpdate { @@ -2114,6 +2222,58 @@ message OpenChannelRequest { the remote peer supports explicit channel negotiation. */ CommitmentType commitment_type = 18; + + /* + If this is true, then a zero-conf channel open will be attempted. + */ + bool zero_conf = 19; + + /* + If this is true, then an option-scid-alias channel-type open will be + attempted. + */ + bool scid_alias = 20; + + /* + The base fee charged regardless of the number of milli-satoshis sent. + */ + uint64 base_fee = 21; + + /* + The fee rate in ppm (parts per million) that will be charged in + proportion of the value of each forwarded HTLC. + */ + uint64 fee_rate = 22; + + /* + If use_base_fee is true the open channel announcement will update the + channel base fee with the value specified in base_fee. In the case of + a base_fee of 0 use_base_fee is needed downstream to distinguish whether + to use the default base fee value specified in the config or 0. + */ + bool use_base_fee = 23; + + /* + If use_fee_rate is true the open channel announcement will update the + channel fee rate with the value specified in fee_rate. In the case of + a fee_rate of 0 use_fee_rate is needed downstream to distinguish whether + to use the default fee rate value specified in the config or 0. + */ + bool use_fee_rate = 24; + + /* + The number of satoshis we require the remote peer to reserve. This value, + if specified, must be above the dust limit and below 20% of the channel + capacity. + */ + uint64 remote_chan_reserve_sat = 25; + + /* + If set, then lnd will attempt to commit all the coins under control of the + internal wallet to open the channel, and the LocalFundingAmount field must + be zero and is ignored. + */ + bool fund_max = 26; } message OpenStatusUpdate { oneof update { @@ -2488,9 +2648,17 @@ message PendingChannelsResponse { repeated PendingHTLC pending_htlcs = 8; + /* + There are three resolution states for the anchor: + limbo, lost and recovered. Derive the current state + from the limbo and recovered balances. + */ enum AnchorState { + // The recovered_balance is zero and limbo_balance is non-zero. LIMBO = 0; + // The recovered_balance is non-zero. RECOVERED = 1; + // A state that is neither LIMBO nor RECOVERED. LOST = 2; } @@ -2936,6 +3104,9 @@ message LightningNode { repeated NodeAddress addresses = 4; string color = 5; map features = 6; + + // Custom node announcement tlv records. + map custom_records = 7; } message NodeAddress { @@ -2951,6 +3122,9 @@ message RoutingPolicy { bool disabled = 5; uint64 max_htlc_msat = 6; uint32 last_update = 7; + + // Custom channel update tlv records. + map custom_records = 8; } /* @@ -2978,6 +3152,9 @@ message ChannelEdge { RoutingPolicy node1_policy = 7; RoutingPolicy node2_policy = 8; + + // Custom channel announcement tlv records. + map custom_records = 9; } message ChannelGraphRequest { @@ -3209,17 +3386,23 @@ message Invoice { */ int64 value_msat = 23; - // Whether this invoice has been fulfilled + /* + Whether this invoice has been fulfilled. + + The field is deprecated. Use the state field instead (compare to SETTLED). + */ bool settled = 6 [deprecated = true]; /* When this invoice was created. + Measured in seconds since the unix epoch. Note: Output only, don't specify for creating an invoice. */ int64 creation_date = 7; /* When this invoice was settled. + Measured in seconds since the unix epoch. Note: Output only, don't specify for creating an invoice. */ int64 settle_date = 8; @@ -3240,7 +3423,7 @@ message Invoice { */ bytes description_hash = 10; - // Payment request expiry time in seconds. Default is 3600 (1 hour). + // Payment request expiry time in seconds. Default is 86400 (24 hours). int64 expiry = 11; // Fallback on-chain address. @@ -3256,6 +3439,8 @@ message Invoice { repeated RouteHint route_hints = 14; // Whether this invoice should include routing hints for private channels. + // Note: When enabled, if value and value_msat are zero, a large number of + // hints with these channels can be included, which might not be desirable. bool private = 15; /* @@ -3484,7 +3669,16 @@ message ListInvoiceRequest { specified index offset. This can be used to paginate backwards. */ bool reversed = 6; + + // If set, returns all invoices with a creation date greater than or equal + // to it. Measured in seconds since the unix epoch. + uint64 creation_date_start = 7; + + // If set, returns all invoices with a creation date less than or equal to + // it. Measured in seconds since the unix epoch. + uint64 creation_date_end = 8; } + message ListInvoiceResponse { /* A list of invoices from the time slice of the time series specified in the @@ -3683,6 +3877,14 @@ message ListPaymentsRequest { of payments, as all of them have to be iterated through to be counted. */ bool count_total_payments = 5; + + // If set, returns all invoices with a creation date greater than or equal + // to it. Measured in seconds since the unix epoch. + uint64 creation_date_start = 6; + + // If set, returns all invoices with a creation date less than or equal to + // it. Measured in seconds since the unix epoch. + uint64 creation_date_end = 7; } message ListPaymentsResponse { @@ -3927,6 +4129,10 @@ message ForwardingHistoryRequest { // The max number of events to return in the response to this query. uint32 num_max_events = 4; + + // Informs the server if the peer alias should be looked up for each + // forwarding event. + bool peer_alias_lookup = 5; } message ForwardingEvent { // Timestamp is the time (unix epoch offset) that this circuit was @@ -3966,6 +4172,12 @@ message ForwardingEvent { // circuit was completed. uint64 timestamp_ns = 11; + // The peer alias of the incoming channel. + string peer_alias_in = 12; + + // The peer alias of the outgoing channel. + string peer_alias_out = 13; + // TODO(roasbeef): add settlement latency? // * use FPE on the chan id? // * also list failures? @@ -4361,6 +4573,14 @@ message RPCMiddlewareRequest { the same type, or replaced by an error message. */ RPCMessage response = 6; + + /* + This is used to indicate to the client that the server has successfully + registered the interceptor. This is only used in the very first message + that the server sends to the client after the client sends the server + the middleware registration message. + */ + bool reg_complete = 8; } /* @@ -4398,7 +4618,8 @@ message RPCMessage { /* The full canonical gRPC name of the message type (in the format - .TypeName, for example lnrpc.GetInfoRequest). + .TypeName, for example lnrpc.GetInfoRequest). In case of an + error being returned from lnd, this simply contains the string "error". */ string type_name = 3; @@ -4407,6 +4628,13 @@ message RPCMessage { format. */ bytes serialized = 4; + + /* + Indicates that the response from lnd was an error, not a gRPC response. If + this is set to true then the type_name contains the string "error" and + serialized contains the error string. + */ + bool is_error = 5; } message RPCMiddlewareResponse { @@ -4483,18 +4711,16 @@ message InterceptFeedback { 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 + A boolean indicating that the gRPC message should be replaced/overwritten. + 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. + binary serialized gRPC message in the protobuf format. */ bytes replacement_serialized = 3; } diff --git a/home.admin/config.scripts/lndlibs/lightning_pb2.py b/home.admin/config.scripts/lndlibs/lightning_pb2.py index 8183c888d..311d20f99 100644 --- a/home.admin/config.scripts/lndlibs/lightning_pb2.py +++ b/home.admin/config.scripts/lndlibs/lightning_pb2.py @@ -2,11 +2,9 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: lightning.proto """Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database # @@protoc_insertion_point(imports) @@ -15,1812 +13,10 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\"\x9e\x01\n\x0cOutputDetail\x12,\n\x0boutput_type\x18\x01 \x01(\x0e\x32\x17.lnrpc.OutputScriptType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x11\n\tpk_script\x18\x03 \x01(\t\x12\x14\n\x0coutput_index\x18\x04 \x01(\x03\x12\x0e\n\x06\x61mount\x18\x05 \x01(\x03\x12\x16\n\x0eis_our_address\x18\x06 \x01(\x08\"\xbc\x02\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\x1a\n\x0e\x64\x65st_addresses\x18\x08 \x03(\tB\x02\x18\x01\x12+\n\x0eoutput_details\x18\x0b \x03(\x0b\x32\x13.lnrpc.OutputDetail\x12\x12\n\nraw_tx_hex\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\x12\x33\n\x12previous_outpoints\x18\x0c \x03(\x0b\x32\x17.lnrpc.PreviousOutPoint\"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\";\n\x10PreviousOutPoint\x12\x10\n\x08outpoint\x18\x01 \x01(\t\x12\x15\n\ris_our_output\x18\x02 \x01(\x08\"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\"\xb8\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\x12 \n\x18require_htlc_interceptor\x18\x15 \x01(\x08\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\"\xf7\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\xe4\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\x12\x0f\n\x07private\x18\x0c \x01(\x08\x1a\x99\x01\n\x12PendingOpenChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\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(\x03J\x04\x08\x02\x10\x03\x1a\xc3\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\x12\x14\n\x0c\x63losing_txid\x18\x04 \x01(\t\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\"\xc3\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\x12\x16\n\x0elocked_balance\x18\x05 \x01(\x03\x12$\n\x1creserved_balance_anchor_chan\x18\x06 \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\"\xe3\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\x12\x11\n\ttime_pref\x18\x12 \x01(\x01\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\"\x96\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\x17\n\x0btlv_payload\x18\t \x01(\x08\x42\x02\x18\x01\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\x12\x10\n\x08metadata\x18\r \x01(\x0c\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\"\x8d\x01\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\x12\x1c\n\x14\x63ount_total_payments\x18\x05 \x01(\x08\"\x8b\x01\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\x12\x1a\n\x12total_num_payments\x18\x04 \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\"\x82\x02\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\x14\n\x0c\x66\x65\x65_rate_ppm\x18\t \x01(\r\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*\xa7\x02\n\x10OutputScriptType\x12\x1b\n\x17SCRIPT_TYPE_PUBKEY_HASH\x10\x00\x12\x1b\n\x17SCRIPT_TYPE_SCRIPT_HASH\x10\x01\x12&\n\"SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH\x10\x02\x12&\n\"SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH\x10\x03\x12\x16\n\x12SCRIPT_TYPE_PUBKEY\x10\x04\x12\x18\n\x14SCRIPT_TYPE_MULTISIG\x10\x05\x12\x18\n\x14SCRIPT_TYPE_NULLDATA\x10\x06\x12\x1c\n\x18SCRIPT_TYPE_NON_STANDARD\x10\x07\x12\x1f\n\x1bSCRIPT_TYPE_WITNESS_UNKNOWN\x10\x08*\xac\x01\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\x12\x12\n\x0eTAPROOT_PUBKEY\x10\x04\x12\x19\n\x15UNUSED_TAPROOT_PUBKEY\x10\x05*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') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0flightning.proto\x12\x05lnrpc\"B\n\x1bLookupHtlcResolutionRequest\x12\x0f\n\x07\x63han_id\x18\x01 \x01(\x04\x12\x12\n\nhtlc_index\x18\x02 \x01(\x04\"A\n\x1cLookupHtlcResolutionResponse\x12\x0f\n\x07settled\x18\x01 \x01(\x08\x12\x10\n\x08offchain\x18\x02 \x01(\x08\" \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\"\x9e\x01\n\x0cOutputDetail\x12,\n\x0boutput_type\x18\x01 \x01(\x0e\x32\x17.lnrpc.OutputScriptType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x11\n\tpk_script\x18\x03 \x01(\t\x12\x14\n\x0coutput_index\x18\x04 \x01(\x03\x12\x0e\n\x06\x61mount\x18\x05 \x01(\x03\x12\x16\n\x0eis_our_address\x18\x06 \x01(\x08\"\xbc\x02\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\x1a\n\x0e\x64\x65st_addresses\x18\x08 \x03(\tB\x02\x18\x01\x12+\n\x0eoutput_details\x18\x0b \x03(\x0b\x32\x13.lnrpc.OutputDetail\x12\x12\n\nraw_tx_hex\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t\x12\x33\n\x12previous_outpoints\x18\x0c \x03(\x0b\x32\x17.lnrpc.PreviousOutPoint\"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\"\x98\x03\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\x12\x17\n\x0fwants_zero_conf\x18\x0f \x01(\x08\x12\x18\n\x10wants_scid_alias\x18\x10 \x01(\x08\"\x87\x02\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\x12\x11\n\tzero_conf\x18\x0b \x01(\x08\"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\";\n\x10PreviousOutPoint\x12\x10\n\x08outpoint\x18\x01 \x01(\t\x12\x15\n\ris_our_output\x18\x02 \x01(\x08\"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\"\xab\x07\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\x12\x13\n\x0b\x61lias_scids\x18\x1f \x03(\x04\x12\x11\n\tzero_conf\x18 \x01(\x08\x12 \n\x18zero_conf_confirmed_scid\x18! \x01(\x04\x12\x12\n\npeer_alias\x18\" \x01(\t\x12\x1b\n\x0fpeer_scid_alias\x18# \x01(\x04\x42\x02\x30\x01\"\x95\x01\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\x12\x19\n\x11peer_alias_lookup\x18\x06 \x01(\x08\"8\n\x14ListChannelsResponse\x12 \n\x08\x63hannels\x18\x0b \x03(\x0b\x32\x0e.lnrpc.Channel\".\n\x08\x41liasMap\x12\x11\n\tbase_scid\x18\x01 \x01(\x04\x12\x0f\n\x07\x61liases\x18\x02 \x03(\x04\"\x14\n\x12ListAliasesRequest\":\n\x13ListAliasesResponse\x12#\n\nalias_maps\x18\x01 \x03(\x0b\x32\x0f.lnrpc.AliasMap\"\xe4\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\x12\x13\n\x0b\x61lias_scids\x18\x0e \x03(\x04\x12$\n\x18zero_conf_confirmed_scid\x18\x0f \x01(\x04\x42\x02\x30\x01\"\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\"\xde\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\x12 \n\x18require_htlc_interceptor\x18\x15 \x01(\x08\x12$\n\x1cstore_final_htlc_resolutions\x18\x16 \x01(\x08\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\"\xcb\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\x12\x19\n\x11max_fee_per_vbyte\x18\x07 \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\"\xa4\x05\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\x12\x11\n\tzero_conf\x18\x13 \x01(\x08\x12\x12\n\nscid_alias\x18\x14 \x01(\x08\x12\x10\n\x08\x62\x61se_fee\x18\x15 \x01(\x04\x12\x10\n\x08\x66\x65\x65_rate\x18\x16 \x01(\x04\x12\x14\n\x0cuse_base_fee\x18\x17 \x01(\x08\x12\x14\n\x0cuse_fee_rate\x18\x18 \x01(\x08\x12\x1f\n\x17remote_chan_reserve_sat\x18\x19 \x01(\x04\x12\x10\n\x08\x66und_max\x18\x1a \x01(\x08\"\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\"\xf7\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\xe4\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\x12\x0f\n\x07private\x18\x0c \x01(\x08\x1a\x99\x01\n\x12PendingOpenChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\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(\x03J\x04\x08\x02\x10\x03\x1a\xc3\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\x12\x14\n\x0c\x63losing_txid\x18\x04 \x01(\t\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\"\xc3\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\x12\x16\n\x0elocked_balance\x18\x05 \x01(\x03\x12$\n\x1creserved_balance_anchor_chan\x18\x06 \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\"\xe3\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\x12\x11\n\ttime_pref\x18\x12 \x01(\x01\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\"\x96\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\x17\n\x0btlv_payload\x18\t \x01(\x08\x42\x02\x18\x01\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\x12\x10\n\x08metadata\x18\r \x01(\x0c\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\"\xe8\x02\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\x12?\n\x0e\x63ustom_records\x18\x07 \x03(\x0b\x32\'.lnrpc.LightningNode.CustomRecordsEntry\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\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\x0bNodeAddress\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\t\"\xa3\x02\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\x12?\n\x0e\x63ustom_records\x18\x08 \x03(\x0b\x32\'.lnrpc.RoutingPolicy.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\"\xd7\x02\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\x12=\n\x0e\x63ustom_records\x18\t \x03(\x0b\x32%.lnrpc.ChannelEdge.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\"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\"\xa4\x01\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\x12\x1b\n\x13\x63reation_date_start\x18\x07 \x01(\x04\x12\x19\n\x11\x63reation_date_end\x18\x08 \x01(\x04\"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\"\xc5\x01\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\x12\x1c\n\x14\x63ount_total_payments\x18\x05 \x01(\x08\x12\x1b\n\x13\x63reation_date_start\x18\x06 \x01(\x04\x12\x19\n\x11\x63reation_date_end\x18\x07 \x01(\x04\"\x8b\x01\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\x12\x1a\n\x12total_num_payments\x18\x04 \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\"\x82\x02\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\x14\n\x0c\x66\x65\x65_rate_ppm\x18\t \x01(\r\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\"\x89\x01\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\x12\x19\n\x11peer_alias_lookup\x18\x05 \x01(\x08\"\x89\x02\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\x12\x15\n\rpeer_alias_in\x18\x0c \x01(\t\x12\x16\n\x0epeer_alias_out\x18\r \x01(\t\"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\"\x92\x02\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\x16\n\x0creg_complete\x18\x08 \x01(\x08H\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\"r\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\x12\x10\n\x08is_error\x18\x05 \x01(\x08\"\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*\xcb\x02\n\x10OutputScriptType\x12\x1b\n\x17SCRIPT_TYPE_PUBKEY_HASH\x10\x00\x12\x1b\n\x17SCRIPT_TYPE_SCRIPT_HASH\x10\x01\x12&\n\"SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH\x10\x02\x12&\n\"SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH\x10\x03\x12\x16\n\x12SCRIPT_TYPE_PUBKEY\x10\x04\x12\x18\n\x14SCRIPT_TYPE_MULTISIG\x10\x05\x12\x18\n\x14SCRIPT_TYPE_NULLDATA\x10\x06\x12\x1c\n\x18SCRIPT_TYPE_NON_STANDARD\x10\x07\x12\x1f\n\x1bSCRIPT_TYPE_WITNESS_UNKNOWN\x10\x08\x12\"\n\x1eSCRIPT_TYPE_WITNESS_V1_TAPROOT\x10\t*\xac\x01\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\x12\x12\n\x0eTAPROOT_PUBKEY\x10\x04\x12\x19\n\x15UNUSED_TAPROOT_PUBKEY\x10\x05*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\xf0&\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\x12\x44\n\x0bListAliases\x12\x19.lnrpc.ListAliasesRequest\x1a\x1a.lnrpc.ListAliasesResponse\x12_\n\x14LookupHtlcResolution\x12\".lnrpc.LookupHtlcResolutionRequest\x1a#.lnrpc.LookupHtlcResolutionResponseB\'Z%github.com/lightningnetwork/lnd/lnrpcb\x06proto3') -_OUTPUTSCRIPTTYPE = DESCRIPTOR.enum_types_by_name['OutputScriptType'] -OutputScriptType = enum_type_wrapper.EnumTypeWrapper(_OUTPUTSCRIPTTYPE) -_ADDRESSTYPE = DESCRIPTOR.enum_types_by_name['AddressType'] -AddressType = enum_type_wrapper.EnumTypeWrapper(_ADDRESSTYPE) -_COMMITMENTTYPE = DESCRIPTOR.enum_types_by_name['CommitmentType'] -CommitmentType = enum_type_wrapper.EnumTypeWrapper(_COMMITMENTTYPE) -_INITIATOR = DESCRIPTOR.enum_types_by_name['Initiator'] -Initiator = enum_type_wrapper.EnumTypeWrapper(_INITIATOR) -_RESOLUTIONTYPE = DESCRIPTOR.enum_types_by_name['ResolutionType'] -ResolutionType = enum_type_wrapper.EnumTypeWrapper(_RESOLUTIONTYPE) -_RESOLUTIONOUTCOME = DESCRIPTOR.enum_types_by_name['ResolutionOutcome'] -ResolutionOutcome = enum_type_wrapper.EnumTypeWrapper(_RESOLUTIONOUTCOME) -_NODEMETRICTYPE = DESCRIPTOR.enum_types_by_name['NodeMetricType'] -NodeMetricType = enum_type_wrapper.EnumTypeWrapper(_NODEMETRICTYPE) -_INVOICEHTLCSTATE = DESCRIPTOR.enum_types_by_name['InvoiceHTLCState'] -InvoiceHTLCState = enum_type_wrapper.EnumTypeWrapper(_INVOICEHTLCSTATE) -_PAYMENTFAILUREREASON = DESCRIPTOR.enum_types_by_name['PaymentFailureReason'] -PaymentFailureReason = enum_type_wrapper.EnumTypeWrapper(_PAYMENTFAILUREREASON) -_FEATUREBIT = DESCRIPTOR.enum_types_by_name['FeatureBit'] -FeatureBit = enum_type_wrapper.EnumTypeWrapper(_FEATUREBIT) -_UPDATEFAILURE = DESCRIPTOR.enum_types_by_name['UpdateFailure'] -UpdateFailure = enum_type_wrapper.EnumTypeWrapper(_UPDATEFAILURE) -SCRIPT_TYPE_PUBKEY_HASH = 0 -SCRIPT_TYPE_SCRIPT_HASH = 1 -SCRIPT_TYPE_WITNESS_V0_PUBKEY_HASH = 2 -SCRIPT_TYPE_WITNESS_V0_SCRIPT_HASH = 3 -SCRIPT_TYPE_PUBKEY = 4 -SCRIPT_TYPE_MULTISIG = 5 -SCRIPT_TYPE_NULLDATA = 6 -SCRIPT_TYPE_NON_STANDARD = 7 -SCRIPT_TYPE_WITNESS_UNKNOWN = 8 -WITNESS_PUBKEY_HASH = 0 -NESTED_PUBKEY_HASH = 1 -UNUSED_WITNESS_PUBKEY_HASH = 2 -UNUSED_NESTED_PUBKEY_HASH = 3 -TAPROOT_PUBKEY = 4 -UNUSED_TAPROOT_PUBKEY = 5 -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 -INITIATOR_BOTH = 3 -TYPE_UNKNOWN = 0 -ANCHOR = 1 -INCOMING_HTLC = 2 -OUTGOING_HTLC = 3 -COMMIT = 4 -OUTCOME_UNKNOWN = 0 -CLAIMED = 1 -UNCLAIMED = 2 -ABANDONED = 3 -FIRST_STAGE = 4 -TIMEOUT = 5 -UNKNOWN = 0 -BETWEENNESS_CENTRALITY = 1 -ACCEPTED = 0 -SETTLED = 1 -CANCELED = 2 -FAILURE_REASON_NONE = 0 -FAILURE_REASON_TIMEOUT = 1 -FAILURE_REASON_NO_ROUTE = 2 -FAILURE_REASON_ERROR = 3 -FAILURE_REASON_INCORRECT_PAYMENT_DETAILS = 4 -FAILURE_REASON_INSUFFICIENT_BALANCE = 5 -DATALOSS_PROTECT_REQ = 0 -DATALOSS_PROTECT_OPT = 1 -INITIAL_ROUING_SYNC = 3 -UPFRONT_SHUTDOWN_SCRIPT_REQ = 4 -UPFRONT_SHUTDOWN_SCRIPT_OPT = 5 -GOSSIP_QUERIES_REQ = 6 -GOSSIP_QUERIES_OPT = 7 -TLV_ONION_REQ = 8 -TLV_ONION_OPT = 9 -EXT_GOSSIP_QUERIES_REQ = 10 -EXT_GOSSIP_QUERIES_OPT = 11 -STATIC_REMOTE_KEY_REQ = 12 -STATIC_REMOTE_KEY_OPT = 13 -PAYMENT_ADDR_REQ = 14 -PAYMENT_ADDR_OPT = 15 -MPP_REQ = 16 -MPP_OPT = 17 -WUMBO_CHANNELS_REQ = 18 -WUMBO_CHANNELS_OPT = 19 -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 - - -_SUBSCRIBECUSTOMMESSAGESREQUEST = DESCRIPTOR.message_types_by_name['SubscribeCustomMessagesRequest'] -_CUSTOMMESSAGE = DESCRIPTOR.message_types_by_name['CustomMessage'] -_SENDCUSTOMMESSAGEREQUEST = DESCRIPTOR.message_types_by_name['SendCustomMessageRequest'] -_SENDCUSTOMMESSAGERESPONSE = DESCRIPTOR.message_types_by_name['SendCustomMessageResponse'] -_UTXO = DESCRIPTOR.message_types_by_name['Utxo'] -_OUTPUTDETAIL = DESCRIPTOR.message_types_by_name['OutputDetail'] -_TRANSACTION = DESCRIPTOR.message_types_by_name['Transaction'] -_GETTRANSACTIONSREQUEST = DESCRIPTOR.message_types_by_name['GetTransactionsRequest'] -_TRANSACTIONDETAILS = DESCRIPTOR.message_types_by_name['TransactionDetails'] -_FEELIMIT = DESCRIPTOR.message_types_by_name['FeeLimit'] -_SENDREQUEST = DESCRIPTOR.message_types_by_name['SendRequest'] -_SENDREQUEST_DESTCUSTOMRECORDSENTRY = _SENDREQUEST.nested_types_by_name['DestCustomRecordsEntry'] -_SENDRESPONSE = DESCRIPTOR.message_types_by_name['SendResponse'] -_SENDTOROUTEREQUEST = DESCRIPTOR.message_types_by_name['SendToRouteRequest'] -_CHANNELACCEPTREQUEST = DESCRIPTOR.message_types_by_name['ChannelAcceptRequest'] -_CHANNELACCEPTRESPONSE = DESCRIPTOR.message_types_by_name['ChannelAcceptResponse'] -_CHANNELPOINT = DESCRIPTOR.message_types_by_name['ChannelPoint'] -_OUTPOINT = DESCRIPTOR.message_types_by_name['OutPoint'] -_PREVIOUSOUTPOINT = DESCRIPTOR.message_types_by_name['PreviousOutPoint'] -_LIGHTNINGADDRESS = DESCRIPTOR.message_types_by_name['LightningAddress'] -_ESTIMATEFEEREQUEST = DESCRIPTOR.message_types_by_name['EstimateFeeRequest'] -_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY = _ESTIMATEFEEREQUEST.nested_types_by_name['AddrToAmountEntry'] -_ESTIMATEFEERESPONSE = DESCRIPTOR.message_types_by_name['EstimateFeeResponse'] -_SENDMANYREQUEST = DESCRIPTOR.message_types_by_name['SendManyRequest'] -_SENDMANYREQUEST_ADDRTOAMOUNTENTRY = _SENDMANYREQUEST.nested_types_by_name['AddrToAmountEntry'] -_SENDMANYRESPONSE = DESCRIPTOR.message_types_by_name['SendManyResponse'] -_SENDCOINSREQUEST = DESCRIPTOR.message_types_by_name['SendCoinsRequest'] -_SENDCOINSRESPONSE = DESCRIPTOR.message_types_by_name['SendCoinsResponse'] -_LISTUNSPENTREQUEST = DESCRIPTOR.message_types_by_name['ListUnspentRequest'] -_LISTUNSPENTRESPONSE = DESCRIPTOR.message_types_by_name['ListUnspentResponse'] -_NEWADDRESSREQUEST = DESCRIPTOR.message_types_by_name['NewAddressRequest'] -_NEWADDRESSRESPONSE = DESCRIPTOR.message_types_by_name['NewAddressResponse'] -_SIGNMESSAGEREQUEST = DESCRIPTOR.message_types_by_name['SignMessageRequest'] -_SIGNMESSAGERESPONSE = DESCRIPTOR.message_types_by_name['SignMessageResponse'] -_VERIFYMESSAGEREQUEST = DESCRIPTOR.message_types_by_name['VerifyMessageRequest'] -_VERIFYMESSAGERESPONSE = DESCRIPTOR.message_types_by_name['VerifyMessageResponse'] -_CONNECTPEERREQUEST = DESCRIPTOR.message_types_by_name['ConnectPeerRequest'] -_CONNECTPEERRESPONSE = DESCRIPTOR.message_types_by_name['ConnectPeerResponse'] -_DISCONNECTPEERREQUEST = DESCRIPTOR.message_types_by_name['DisconnectPeerRequest'] -_DISCONNECTPEERRESPONSE = DESCRIPTOR.message_types_by_name['DisconnectPeerResponse'] -_HTLC = DESCRIPTOR.message_types_by_name['HTLC'] -_CHANNELCONSTRAINTS = DESCRIPTOR.message_types_by_name['ChannelConstraints'] -_CHANNEL = DESCRIPTOR.message_types_by_name['Channel'] -_LISTCHANNELSREQUEST = DESCRIPTOR.message_types_by_name['ListChannelsRequest'] -_LISTCHANNELSRESPONSE = DESCRIPTOR.message_types_by_name['ListChannelsResponse'] -_CHANNELCLOSESUMMARY = DESCRIPTOR.message_types_by_name['ChannelCloseSummary'] -_RESOLUTION = DESCRIPTOR.message_types_by_name['Resolution'] -_CLOSEDCHANNELSREQUEST = DESCRIPTOR.message_types_by_name['ClosedChannelsRequest'] -_CLOSEDCHANNELSRESPONSE = DESCRIPTOR.message_types_by_name['ClosedChannelsResponse'] -_PEER = DESCRIPTOR.message_types_by_name['Peer'] -_PEER_FEATURESENTRY = _PEER.nested_types_by_name['FeaturesEntry'] -_TIMESTAMPEDERROR = DESCRIPTOR.message_types_by_name['TimestampedError'] -_LISTPEERSREQUEST = DESCRIPTOR.message_types_by_name['ListPeersRequest'] -_LISTPEERSRESPONSE = DESCRIPTOR.message_types_by_name['ListPeersResponse'] -_PEEREVENTSUBSCRIPTION = DESCRIPTOR.message_types_by_name['PeerEventSubscription'] -_PEEREVENT = DESCRIPTOR.message_types_by_name['PeerEvent'] -_GETINFOREQUEST = DESCRIPTOR.message_types_by_name['GetInfoRequest'] -_GETINFORESPONSE = DESCRIPTOR.message_types_by_name['GetInfoResponse'] -_GETINFORESPONSE_FEATURESENTRY = _GETINFORESPONSE.nested_types_by_name['FeaturesEntry'] -_GETRECOVERYINFOREQUEST = DESCRIPTOR.message_types_by_name['GetRecoveryInfoRequest'] -_GETRECOVERYINFORESPONSE = DESCRIPTOR.message_types_by_name['GetRecoveryInfoResponse'] -_CHAIN = DESCRIPTOR.message_types_by_name['Chain'] -_CONFIRMATIONUPDATE = DESCRIPTOR.message_types_by_name['ConfirmationUpdate'] -_CHANNELOPENUPDATE = DESCRIPTOR.message_types_by_name['ChannelOpenUpdate'] -_CHANNELCLOSEUPDATE = DESCRIPTOR.message_types_by_name['ChannelCloseUpdate'] -_CLOSECHANNELREQUEST = DESCRIPTOR.message_types_by_name['CloseChannelRequest'] -_CLOSESTATUSUPDATE = DESCRIPTOR.message_types_by_name['CloseStatusUpdate'] -_PENDINGUPDATE = DESCRIPTOR.message_types_by_name['PendingUpdate'] -_READYFORPSBTFUNDING = DESCRIPTOR.message_types_by_name['ReadyForPsbtFunding'] -_BATCHOPENCHANNELREQUEST = DESCRIPTOR.message_types_by_name['BatchOpenChannelRequest'] -_BATCHOPENCHANNEL = DESCRIPTOR.message_types_by_name['BatchOpenChannel'] -_BATCHOPENCHANNELRESPONSE = DESCRIPTOR.message_types_by_name['BatchOpenChannelResponse'] -_OPENCHANNELREQUEST = DESCRIPTOR.message_types_by_name['OpenChannelRequest'] -_OPENSTATUSUPDATE = DESCRIPTOR.message_types_by_name['OpenStatusUpdate'] -_KEYLOCATOR = DESCRIPTOR.message_types_by_name['KeyLocator'] -_KEYDESCRIPTOR = DESCRIPTOR.message_types_by_name['KeyDescriptor'] -_CHANPOINTSHIM = DESCRIPTOR.message_types_by_name['ChanPointShim'] -_PSBTSHIM = DESCRIPTOR.message_types_by_name['PsbtShim'] -_FUNDINGSHIM = DESCRIPTOR.message_types_by_name['FundingShim'] -_FUNDINGSHIMCANCEL = DESCRIPTOR.message_types_by_name['FundingShimCancel'] -_FUNDINGPSBTVERIFY = DESCRIPTOR.message_types_by_name['FundingPsbtVerify'] -_FUNDINGPSBTFINALIZE = DESCRIPTOR.message_types_by_name['FundingPsbtFinalize'] -_FUNDINGTRANSITIONMSG = DESCRIPTOR.message_types_by_name['FundingTransitionMsg'] -_FUNDINGSTATESTEPRESP = DESCRIPTOR.message_types_by_name['FundingStateStepResp'] -_PENDINGHTLC = DESCRIPTOR.message_types_by_name['PendingHTLC'] -_PENDINGCHANNELSREQUEST = DESCRIPTOR.message_types_by_name['PendingChannelsRequest'] -_PENDINGCHANNELSRESPONSE = DESCRIPTOR.message_types_by_name['PendingChannelsResponse'] -_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL = _PENDINGCHANNELSRESPONSE.nested_types_by_name['PendingChannel'] -_PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL = _PENDINGCHANNELSRESPONSE.nested_types_by_name['PendingOpenChannel'] -_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL = _PENDINGCHANNELSRESPONSE.nested_types_by_name['WaitingCloseChannel'] -_PENDINGCHANNELSRESPONSE_COMMITMENTS = _PENDINGCHANNELSRESPONSE.nested_types_by_name['Commitments'] -_PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL = _PENDINGCHANNELSRESPONSE.nested_types_by_name['ClosedChannel'] -_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL = _PENDINGCHANNELSRESPONSE.nested_types_by_name['ForceClosedChannel'] -_CHANNELEVENTSUBSCRIPTION = DESCRIPTOR.message_types_by_name['ChannelEventSubscription'] -_CHANNELEVENTUPDATE = DESCRIPTOR.message_types_by_name['ChannelEventUpdate'] -_WALLETACCOUNTBALANCE = DESCRIPTOR.message_types_by_name['WalletAccountBalance'] -_WALLETBALANCEREQUEST = DESCRIPTOR.message_types_by_name['WalletBalanceRequest'] -_WALLETBALANCERESPONSE = DESCRIPTOR.message_types_by_name['WalletBalanceResponse'] -_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY = _WALLETBALANCERESPONSE.nested_types_by_name['AccountBalanceEntry'] -_AMOUNT = DESCRIPTOR.message_types_by_name['Amount'] -_CHANNELBALANCEREQUEST = DESCRIPTOR.message_types_by_name['ChannelBalanceRequest'] -_CHANNELBALANCERESPONSE = DESCRIPTOR.message_types_by_name['ChannelBalanceResponse'] -_QUERYROUTESREQUEST = DESCRIPTOR.message_types_by_name['QueryRoutesRequest'] -_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY = _QUERYROUTESREQUEST.nested_types_by_name['DestCustomRecordsEntry'] -_NODEPAIR = DESCRIPTOR.message_types_by_name['NodePair'] -_EDGELOCATOR = DESCRIPTOR.message_types_by_name['EdgeLocator'] -_QUERYROUTESRESPONSE = DESCRIPTOR.message_types_by_name['QueryRoutesResponse'] -_HOP = DESCRIPTOR.message_types_by_name['Hop'] -_HOP_CUSTOMRECORDSENTRY = _HOP.nested_types_by_name['CustomRecordsEntry'] -_MPPRECORD = DESCRIPTOR.message_types_by_name['MPPRecord'] -_AMPRECORD = DESCRIPTOR.message_types_by_name['AMPRecord'] -_ROUTE = DESCRIPTOR.message_types_by_name['Route'] -_NODEINFOREQUEST = DESCRIPTOR.message_types_by_name['NodeInfoRequest'] -_NODEINFO = DESCRIPTOR.message_types_by_name['NodeInfo'] -_LIGHTNINGNODE = DESCRIPTOR.message_types_by_name['LightningNode'] -_LIGHTNINGNODE_FEATURESENTRY = _LIGHTNINGNODE.nested_types_by_name['FeaturesEntry'] -_NODEADDRESS = DESCRIPTOR.message_types_by_name['NodeAddress'] -_ROUTINGPOLICY = DESCRIPTOR.message_types_by_name['RoutingPolicy'] -_CHANNELEDGE = DESCRIPTOR.message_types_by_name['ChannelEdge'] -_CHANNELGRAPHREQUEST = DESCRIPTOR.message_types_by_name['ChannelGraphRequest'] -_CHANNELGRAPH = DESCRIPTOR.message_types_by_name['ChannelGraph'] -_NODEMETRICSREQUEST = DESCRIPTOR.message_types_by_name['NodeMetricsRequest'] -_NODEMETRICSRESPONSE = DESCRIPTOR.message_types_by_name['NodeMetricsResponse'] -_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY = _NODEMETRICSRESPONSE.nested_types_by_name['BetweennessCentralityEntry'] -_FLOATMETRIC = DESCRIPTOR.message_types_by_name['FloatMetric'] -_CHANINFOREQUEST = DESCRIPTOR.message_types_by_name['ChanInfoRequest'] -_NETWORKINFOREQUEST = DESCRIPTOR.message_types_by_name['NetworkInfoRequest'] -_NETWORKINFO = DESCRIPTOR.message_types_by_name['NetworkInfo'] -_STOPREQUEST = DESCRIPTOR.message_types_by_name['StopRequest'] -_STOPRESPONSE = DESCRIPTOR.message_types_by_name['StopResponse'] -_GRAPHTOPOLOGYSUBSCRIPTION = DESCRIPTOR.message_types_by_name['GraphTopologySubscription'] -_GRAPHTOPOLOGYUPDATE = DESCRIPTOR.message_types_by_name['GraphTopologyUpdate'] -_NODEUPDATE = DESCRIPTOR.message_types_by_name['NodeUpdate'] -_NODEUPDATE_FEATURESENTRY = _NODEUPDATE.nested_types_by_name['FeaturesEntry'] -_CHANNELEDGEUPDATE = DESCRIPTOR.message_types_by_name['ChannelEdgeUpdate'] -_CLOSEDCHANNELUPDATE = DESCRIPTOR.message_types_by_name['ClosedChannelUpdate'] -_HOPHINT = DESCRIPTOR.message_types_by_name['HopHint'] -_SETID = DESCRIPTOR.message_types_by_name['SetID'] -_ROUTEHINT = DESCRIPTOR.message_types_by_name['RouteHint'] -_AMPINVOICESTATE = DESCRIPTOR.message_types_by_name['AMPInvoiceState'] -_INVOICE = DESCRIPTOR.message_types_by_name['Invoice'] -_INVOICE_FEATURESENTRY = _INVOICE.nested_types_by_name['FeaturesEntry'] -_INVOICE_AMPINVOICESTATEENTRY = _INVOICE.nested_types_by_name['AmpInvoiceStateEntry'] -_INVOICEHTLC = DESCRIPTOR.message_types_by_name['InvoiceHTLC'] -_INVOICEHTLC_CUSTOMRECORDSENTRY = _INVOICEHTLC.nested_types_by_name['CustomRecordsEntry'] -_AMP = DESCRIPTOR.message_types_by_name['AMP'] -_ADDINVOICERESPONSE = DESCRIPTOR.message_types_by_name['AddInvoiceResponse'] -_PAYMENTHASH = DESCRIPTOR.message_types_by_name['PaymentHash'] -_LISTINVOICEREQUEST = DESCRIPTOR.message_types_by_name['ListInvoiceRequest'] -_LISTINVOICERESPONSE = DESCRIPTOR.message_types_by_name['ListInvoiceResponse'] -_INVOICESUBSCRIPTION = DESCRIPTOR.message_types_by_name['InvoiceSubscription'] -_PAYMENT = DESCRIPTOR.message_types_by_name['Payment'] -_HTLCATTEMPT = DESCRIPTOR.message_types_by_name['HTLCAttempt'] -_LISTPAYMENTSREQUEST = DESCRIPTOR.message_types_by_name['ListPaymentsRequest'] -_LISTPAYMENTSRESPONSE = DESCRIPTOR.message_types_by_name['ListPaymentsResponse'] -_DELETEPAYMENTREQUEST = DESCRIPTOR.message_types_by_name['DeletePaymentRequest'] -_DELETEALLPAYMENTSREQUEST = DESCRIPTOR.message_types_by_name['DeleteAllPaymentsRequest'] -_DELETEPAYMENTRESPONSE = DESCRIPTOR.message_types_by_name['DeletePaymentResponse'] -_DELETEALLPAYMENTSRESPONSE = DESCRIPTOR.message_types_by_name['DeleteAllPaymentsResponse'] -_ABANDONCHANNELREQUEST = DESCRIPTOR.message_types_by_name['AbandonChannelRequest'] -_ABANDONCHANNELRESPONSE = DESCRIPTOR.message_types_by_name['AbandonChannelResponse'] -_DEBUGLEVELREQUEST = DESCRIPTOR.message_types_by_name['DebugLevelRequest'] -_DEBUGLEVELRESPONSE = DESCRIPTOR.message_types_by_name['DebugLevelResponse'] -_PAYREQSTRING = DESCRIPTOR.message_types_by_name['PayReqString'] -_PAYREQ = DESCRIPTOR.message_types_by_name['PayReq'] -_PAYREQ_FEATURESENTRY = _PAYREQ.nested_types_by_name['FeaturesEntry'] -_FEATURE = DESCRIPTOR.message_types_by_name['Feature'] -_FEEREPORTREQUEST = DESCRIPTOR.message_types_by_name['FeeReportRequest'] -_CHANNELFEEREPORT = DESCRIPTOR.message_types_by_name['ChannelFeeReport'] -_FEEREPORTRESPONSE = DESCRIPTOR.message_types_by_name['FeeReportResponse'] -_POLICYUPDATEREQUEST = DESCRIPTOR.message_types_by_name['PolicyUpdateRequest'] -_FAILEDUPDATE = DESCRIPTOR.message_types_by_name['FailedUpdate'] -_POLICYUPDATERESPONSE = DESCRIPTOR.message_types_by_name['PolicyUpdateResponse'] -_FORWARDINGHISTORYREQUEST = DESCRIPTOR.message_types_by_name['ForwardingHistoryRequest'] -_FORWARDINGEVENT = DESCRIPTOR.message_types_by_name['ForwardingEvent'] -_FORWARDINGHISTORYRESPONSE = DESCRIPTOR.message_types_by_name['ForwardingHistoryResponse'] -_EXPORTCHANNELBACKUPREQUEST = DESCRIPTOR.message_types_by_name['ExportChannelBackupRequest'] -_CHANNELBACKUP = DESCRIPTOR.message_types_by_name['ChannelBackup'] -_MULTICHANBACKUP = DESCRIPTOR.message_types_by_name['MultiChanBackup'] -_CHANBACKUPEXPORTREQUEST = DESCRIPTOR.message_types_by_name['ChanBackupExportRequest'] -_CHANBACKUPSNAPSHOT = DESCRIPTOR.message_types_by_name['ChanBackupSnapshot'] -_CHANNELBACKUPS = DESCRIPTOR.message_types_by_name['ChannelBackups'] -_RESTORECHANBACKUPREQUEST = DESCRIPTOR.message_types_by_name['RestoreChanBackupRequest'] -_RESTOREBACKUPRESPONSE = DESCRIPTOR.message_types_by_name['RestoreBackupResponse'] -_CHANNELBACKUPSUBSCRIPTION = DESCRIPTOR.message_types_by_name['ChannelBackupSubscription'] -_VERIFYCHANBACKUPRESPONSE = DESCRIPTOR.message_types_by_name['VerifyChanBackupResponse'] -_MACAROONPERMISSION = DESCRIPTOR.message_types_by_name['MacaroonPermission'] -_BAKEMACAROONREQUEST = DESCRIPTOR.message_types_by_name['BakeMacaroonRequest'] -_BAKEMACAROONRESPONSE = DESCRIPTOR.message_types_by_name['BakeMacaroonResponse'] -_LISTMACAROONIDSREQUEST = DESCRIPTOR.message_types_by_name['ListMacaroonIDsRequest'] -_LISTMACAROONIDSRESPONSE = DESCRIPTOR.message_types_by_name['ListMacaroonIDsResponse'] -_DELETEMACAROONIDREQUEST = DESCRIPTOR.message_types_by_name['DeleteMacaroonIDRequest'] -_DELETEMACAROONIDRESPONSE = DESCRIPTOR.message_types_by_name['DeleteMacaroonIDResponse'] -_MACAROONPERMISSIONLIST = DESCRIPTOR.message_types_by_name['MacaroonPermissionList'] -_LISTPERMISSIONSREQUEST = DESCRIPTOR.message_types_by_name['ListPermissionsRequest'] -_LISTPERMISSIONSRESPONSE = DESCRIPTOR.message_types_by_name['ListPermissionsResponse'] -_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY = _LISTPERMISSIONSRESPONSE.nested_types_by_name['MethodPermissionsEntry'] -_FAILURE = DESCRIPTOR.message_types_by_name['Failure'] -_CHANNELUPDATE = DESCRIPTOR.message_types_by_name['ChannelUpdate'] -_MACAROONID = DESCRIPTOR.message_types_by_name['MacaroonId'] -_OP = DESCRIPTOR.message_types_by_name['Op'] -_CHECKMACPERMREQUEST = DESCRIPTOR.message_types_by_name['CheckMacPermRequest'] -_CHECKMACPERMRESPONSE = DESCRIPTOR.message_types_by_name['CheckMacPermResponse'] -_RPCMIDDLEWAREREQUEST = DESCRIPTOR.message_types_by_name['RPCMiddlewareRequest'] -_STREAMAUTH = DESCRIPTOR.message_types_by_name['StreamAuth'] -_RPCMESSAGE = DESCRIPTOR.message_types_by_name['RPCMessage'] -_RPCMIDDLEWARERESPONSE = DESCRIPTOR.message_types_by_name['RPCMiddlewareResponse'] -_MIDDLEWAREREGISTRATION = DESCRIPTOR.message_types_by_name['MiddlewareRegistration'] -_INTERCEPTFEEDBACK = DESCRIPTOR.message_types_by_name['InterceptFeedback'] -_CHANNELCLOSESUMMARY_CLOSURETYPE = _CHANNELCLOSESUMMARY.enum_types_by_name['ClosureType'] -_PEER_SYNCTYPE = _PEER.enum_types_by_name['SyncType'] -_PEEREVENT_EVENTTYPE = _PEEREVENT.enum_types_by_name['EventType'] -_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE = _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL.enum_types_by_name['AnchorState'] -_CHANNELEVENTUPDATE_UPDATETYPE = _CHANNELEVENTUPDATE.enum_types_by_name['UpdateType'] -_INVOICE_INVOICESTATE = _INVOICE.enum_types_by_name['InvoiceState'] -_PAYMENT_PAYMENTSTATUS = _PAYMENT.enum_types_by_name['PaymentStatus'] -_HTLCATTEMPT_HTLCSTATUS = _HTLCATTEMPT.enum_types_by_name['HTLCStatus'] -_FAILURE_FAILURECODE = _FAILURE.enum_types_by_name['FailureCode'] -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__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Utxo) - }) -_sym_db.RegisterMessage(Utxo) - -OutputDetail = _reflection.GeneratedProtocolMessageType('OutputDetail', (_message.Message,), { - 'DESCRIPTOR' : _OUTPUTDETAIL, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.OutputDetail) - }) -_sym_db.RegisterMessage(OutputDetail) - -Transaction = _reflection.GeneratedProtocolMessageType('Transaction', (_message.Message,), { - 'DESCRIPTOR' : _TRANSACTION, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Transaction) - }) -_sym_db.RegisterMessage(Transaction) - -GetTransactionsRequest = _reflection.GeneratedProtocolMessageType('GetTransactionsRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETTRANSACTIONSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GetTransactionsRequest) - }) -_sym_db.RegisterMessage(GetTransactionsRequest) - -TransactionDetails = _reflection.GeneratedProtocolMessageType('TransactionDetails', (_message.Message,), { - 'DESCRIPTOR' : _TRANSACTIONDETAILS, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.TransactionDetails) - }) -_sym_db.RegisterMessage(TransactionDetails) - -FeeLimit = _reflection.GeneratedProtocolMessageType('FeeLimit', (_message.Message,), { - 'DESCRIPTOR' : _FEELIMIT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FeeLimit) - }) -_sym_db.RegisterMessage(FeeLimit) - -SendRequest = _reflection.GeneratedProtocolMessageType('SendRequest', (_message.Message,), { - - 'DestCustomRecordsEntry' : _reflection.GeneratedProtocolMessageType('DestCustomRecordsEntry', (_message.Message,), { - 'DESCRIPTOR' : _SENDREQUEST_DESTCUSTOMRECORDSENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendRequest.DestCustomRecordsEntry) - }) - , - 'DESCRIPTOR' : _SENDREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendRequest) - }) -_sym_db.RegisterMessage(SendRequest) -_sym_db.RegisterMessage(SendRequest.DestCustomRecordsEntry) - -SendResponse = _reflection.GeneratedProtocolMessageType('SendResponse', (_message.Message,), { - 'DESCRIPTOR' : _SENDRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendResponse) - }) -_sym_db.RegisterMessage(SendResponse) - -SendToRouteRequest = _reflection.GeneratedProtocolMessageType('SendToRouteRequest', (_message.Message,), { - 'DESCRIPTOR' : _SENDTOROUTEREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendToRouteRequest) - }) -_sym_db.RegisterMessage(SendToRouteRequest) - -ChannelAcceptRequest = _reflection.GeneratedProtocolMessageType('ChannelAcceptRequest', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELACCEPTREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelAcceptRequest) - }) -_sym_db.RegisterMessage(ChannelAcceptRequest) - -ChannelAcceptResponse = _reflection.GeneratedProtocolMessageType('ChannelAcceptResponse', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELACCEPTRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelAcceptResponse) - }) -_sym_db.RegisterMessage(ChannelAcceptResponse) - -ChannelPoint = _reflection.GeneratedProtocolMessageType('ChannelPoint', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELPOINT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelPoint) - }) -_sym_db.RegisterMessage(ChannelPoint) - -OutPoint = _reflection.GeneratedProtocolMessageType('OutPoint', (_message.Message,), { - 'DESCRIPTOR' : _OUTPOINT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.OutPoint) - }) -_sym_db.RegisterMessage(OutPoint) - -PreviousOutPoint = _reflection.GeneratedProtocolMessageType('PreviousOutPoint', (_message.Message,), { - 'DESCRIPTOR' : _PREVIOUSOUTPOINT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PreviousOutPoint) - }) -_sym_db.RegisterMessage(PreviousOutPoint) - -LightningAddress = _reflection.GeneratedProtocolMessageType('LightningAddress', (_message.Message,), { - 'DESCRIPTOR' : _LIGHTNINGADDRESS, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.LightningAddress) - }) -_sym_db.RegisterMessage(LightningAddress) - -EstimateFeeRequest = _reflection.GeneratedProtocolMessageType('EstimateFeeRequest', (_message.Message,), { - - 'AddrToAmountEntry' : _reflection.GeneratedProtocolMessageType('AddrToAmountEntry', (_message.Message,), { - 'DESCRIPTOR' : _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.EstimateFeeRequest.AddrToAmountEntry) - }) - , - 'DESCRIPTOR' : _ESTIMATEFEEREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.EstimateFeeRequest) - }) -_sym_db.RegisterMessage(EstimateFeeRequest) -_sym_db.RegisterMessage(EstimateFeeRequest.AddrToAmountEntry) - -EstimateFeeResponse = _reflection.GeneratedProtocolMessageType('EstimateFeeResponse', (_message.Message,), { - 'DESCRIPTOR' : _ESTIMATEFEERESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.EstimateFeeResponse) - }) -_sym_db.RegisterMessage(EstimateFeeResponse) - -SendManyRequest = _reflection.GeneratedProtocolMessageType('SendManyRequest', (_message.Message,), { - - 'AddrToAmountEntry' : _reflection.GeneratedProtocolMessageType('AddrToAmountEntry', (_message.Message,), { - 'DESCRIPTOR' : _SENDMANYREQUEST_ADDRTOAMOUNTENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendManyRequest.AddrToAmountEntry) - }) - , - 'DESCRIPTOR' : _SENDMANYREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendManyRequest) - }) -_sym_db.RegisterMessage(SendManyRequest) -_sym_db.RegisterMessage(SendManyRequest.AddrToAmountEntry) - -SendManyResponse = _reflection.GeneratedProtocolMessageType('SendManyResponse', (_message.Message,), { - 'DESCRIPTOR' : _SENDMANYRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendManyResponse) - }) -_sym_db.RegisterMessage(SendManyResponse) - -SendCoinsRequest = _reflection.GeneratedProtocolMessageType('SendCoinsRequest', (_message.Message,), { - 'DESCRIPTOR' : _SENDCOINSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendCoinsRequest) - }) -_sym_db.RegisterMessage(SendCoinsRequest) - -SendCoinsResponse = _reflection.GeneratedProtocolMessageType('SendCoinsResponse', (_message.Message,), { - 'DESCRIPTOR' : _SENDCOINSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SendCoinsResponse) - }) -_sym_db.RegisterMessage(SendCoinsResponse) - -ListUnspentRequest = _reflection.GeneratedProtocolMessageType('ListUnspentRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTUNSPENTREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListUnspentRequest) - }) -_sym_db.RegisterMessage(ListUnspentRequest) - -ListUnspentResponse = _reflection.GeneratedProtocolMessageType('ListUnspentResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTUNSPENTRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListUnspentResponse) - }) -_sym_db.RegisterMessage(ListUnspentResponse) - -NewAddressRequest = _reflection.GeneratedProtocolMessageType('NewAddressRequest', (_message.Message,), { - 'DESCRIPTOR' : _NEWADDRESSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NewAddressRequest) - }) -_sym_db.RegisterMessage(NewAddressRequest) - -NewAddressResponse = _reflection.GeneratedProtocolMessageType('NewAddressResponse', (_message.Message,), { - 'DESCRIPTOR' : _NEWADDRESSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NewAddressResponse) - }) -_sym_db.RegisterMessage(NewAddressResponse) - -SignMessageRequest = _reflection.GeneratedProtocolMessageType('SignMessageRequest', (_message.Message,), { - 'DESCRIPTOR' : _SIGNMESSAGEREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SignMessageRequest) - }) -_sym_db.RegisterMessage(SignMessageRequest) - -SignMessageResponse = _reflection.GeneratedProtocolMessageType('SignMessageResponse', (_message.Message,), { - 'DESCRIPTOR' : _SIGNMESSAGERESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.SignMessageResponse) - }) -_sym_db.RegisterMessage(SignMessageResponse) - -VerifyMessageRequest = _reflection.GeneratedProtocolMessageType('VerifyMessageRequest', (_message.Message,), { - 'DESCRIPTOR' : _VERIFYMESSAGEREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.VerifyMessageRequest) - }) -_sym_db.RegisterMessage(VerifyMessageRequest) - -VerifyMessageResponse = _reflection.GeneratedProtocolMessageType('VerifyMessageResponse', (_message.Message,), { - 'DESCRIPTOR' : _VERIFYMESSAGERESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.VerifyMessageResponse) - }) -_sym_db.RegisterMessage(VerifyMessageResponse) - -ConnectPeerRequest = _reflection.GeneratedProtocolMessageType('ConnectPeerRequest', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTPEERREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ConnectPeerRequest) - }) -_sym_db.RegisterMessage(ConnectPeerRequest) - -ConnectPeerResponse = _reflection.GeneratedProtocolMessageType('ConnectPeerResponse', (_message.Message,), { - 'DESCRIPTOR' : _CONNECTPEERRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ConnectPeerResponse) - }) -_sym_db.RegisterMessage(ConnectPeerResponse) - -DisconnectPeerRequest = _reflection.GeneratedProtocolMessageType('DisconnectPeerRequest', (_message.Message,), { - 'DESCRIPTOR' : _DISCONNECTPEERREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.DisconnectPeerRequest) - }) -_sym_db.RegisterMessage(DisconnectPeerRequest) - -DisconnectPeerResponse = _reflection.GeneratedProtocolMessageType('DisconnectPeerResponse', (_message.Message,), { - 'DESCRIPTOR' : _DISCONNECTPEERRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.DisconnectPeerResponse) - }) -_sym_db.RegisterMessage(DisconnectPeerResponse) - -HTLC = _reflection.GeneratedProtocolMessageType('HTLC', (_message.Message,), { - 'DESCRIPTOR' : _HTLC, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.HTLC) - }) -_sym_db.RegisterMessage(HTLC) - -ChannelConstraints = _reflection.GeneratedProtocolMessageType('ChannelConstraints', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELCONSTRAINTS, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelConstraints) - }) -_sym_db.RegisterMessage(ChannelConstraints) - -Channel = _reflection.GeneratedProtocolMessageType('Channel', (_message.Message,), { - 'DESCRIPTOR' : _CHANNEL, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Channel) - }) -_sym_db.RegisterMessage(Channel) - -ListChannelsRequest = _reflection.GeneratedProtocolMessageType('ListChannelsRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTCHANNELSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListChannelsRequest) - }) -_sym_db.RegisterMessage(ListChannelsRequest) - -ListChannelsResponse = _reflection.GeneratedProtocolMessageType('ListChannelsResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTCHANNELSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListChannelsResponse) - }) -_sym_db.RegisterMessage(ListChannelsResponse) - -ChannelCloseSummary = _reflection.GeneratedProtocolMessageType('ChannelCloseSummary', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELCLOSESUMMARY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelCloseSummary) - }) -_sym_db.RegisterMessage(ChannelCloseSummary) - -Resolution = _reflection.GeneratedProtocolMessageType('Resolution', (_message.Message,), { - 'DESCRIPTOR' : _RESOLUTION, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Resolution) - }) -_sym_db.RegisterMessage(Resolution) - -ClosedChannelsRequest = _reflection.GeneratedProtocolMessageType('ClosedChannelsRequest', (_message.Message,), { - 'DESCRIPTOR' : _CLOSEDCHANNELSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ClosedChannelsRequest) - }) -_sym_db.RegisterMessage(ClosedChannelsRequest) - -ClosedChannelsResponse = _reflection.GeneratedProtocolMessageType('ClosedChannelsResponse', (_message.Message,), { - 'DESCRIPTOR' : _CLOSEDCHANNELSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ClosedChannelsResponse) - }) -_sym_db.RegisterMessage(ClosedChannelsResponse) - -Peer = _reflection.GeneratedProtocolMessageType('Peer', (_message.Message,), { - - 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { - 'DESCRIPTOR' : _PEER_FEATURESENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Peer.FeaturesEntry) - }) - , - 'DESCRIPTOR' : _PEER, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Peer) - }) -_sym_db.RegisterMessage(Peer) -_sym_db.RegisterMessage(Peer.FeaturesEntry) - -TimestampedError = _reflection.GeneratedProtocolMessageType('TimestampedError', (_message.Message,), { - 'DESCRIPTOR' : _TIMESTAMPEDERROR, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.TimestampedError) - }) -_sym_db.RegisterMessage(TimestampedError) - -ListPeersRequest = _reflection.GeneratedProtocolMessageType('ListPeersRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTPEERSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListPeersRequest) - }) -_sym_db.RegisterMessage(ListPeersRequest) - -ListPeersResponse = _reflection.GeneratedProtocolMessageType('ListPeersResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTPEERSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListPeersResponse) - }) -_sym_db.RegisterMessage(ListPeersResponse) - -PeerEventSubscription = _reflection.GeneratedProtocolMessageType('PeerEventSubscription', (_message.Message,), { - 'DESCRIPTOR' : _PEEREVENTSUBSCRIPTION, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PeerEventSubscription) - }) -_sym_db.RegisterMessage(PeerEventSubscription) - -PeerEvent = _reflection.GeneratedProtocolMessageType('PeerEvent', (_message.Message,), { - 'DESCRIPTOR' : _PEEREVENT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PeerEvent) - }) -_sym_db.RegisterMessage(PeerEvent) - -GetInfoRequest = _reflection.GeneratedProtocolMessageType('GetInfoRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETINFOREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GetInfoRequest) - }) -_sym_db.RegisterMessage(GetInfoRequest) - -GetInfoResponse = _reflection.GeneratedProtocolMessageType('GetInfoResponse', (_message.Message,), { - - 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { - 'DESCRIPTOR' : _GETINFORESPONSE_FEATURESENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GetInfoResponse.FeaturesEntry) - }) - , - 'DESCRIPTOR' : _GETINFORESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GetInfoResponse) - }) -_sym_db.RegisterMessage(GetInfoResponse) -_sym_db.RegisterMessage(GetInfoResponse.FeaturesEntry) - -GetRecoveryInfoRequest = _reflection.GeneratedProtocolMessageType('GetRecoveryInfoRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETRECOVERYINFOREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GetRecoveryInfoRequest) - }) -_sym_db.RegisterMessage(GetRecoveryInfoRequest) - -GetRecoveryInfoResponse = _reflection.GeneratedProtocolMessageType('GetRecoveryInfoResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETRECOVERYINFORESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GetRecoveryInfoResponse) - }) -_sym_db.RegisterMessage(GetRecoveryInfoResponse) - -Chain = _reflection.GeneratedProtocolMessageType('Chain', (_message.Message,), { - 'DESCRIPTOR' : _CHAIN, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Chain) - }) -_sym_db.RegisterMessage(Chain) - -ConfirmationUpdate = _reflection.GeneratedProtocolMessageType('ConfirmationUpdate', (_message.Message,), { - 'DESCRIPTOR' : _CONFIRMATIONUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ConfirmationUpdate) - }) -_sym_db.RegisterMessage(ConfirmationUpdate) - -ChannelOpenUpdate = _reflection.GeneratedProtocolMessageType('ChannelOpenUpdate', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELOPENUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelOpenUpdate) - }) -_sym_db.RegisterMessage(ChannelOpenUpdate) - -ChannelCloseUpdate = _reflection.GeneratedProtocolMessageType('ChannelCloseUpdate', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELCLOSEUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelCloseUpdate) - }) -_sym_db.RegisterMessage(ChannelCloseUpdate) - -CloseChannelRequest = _reflection.GeneratedProtocolMessageType('CloseChannelRequest', (_message.Message,), { - 'DESCRIPTOR' : _CLOSECHANNELREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.CloseChannelRequest) - }) -_sym_db.RegisterMessage(CloseChannelRequest) - -CloseStatusUpdate = _reflection.GeneratedProtocolMessageType('CloseStatusUpdate', (_message.Message,), { - 'DESCRIPTOR' : _CLOSESTATUSUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.CloseStatusUpdate) - }) -_sym_db.RegisterMessage(CloseStatusUpdate) - -PendingUpdate = _reflection.GeneratedProtocolMessageType('PendingUpdate', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingUpdate) - }) -_sym_db.RegisterMessage(PendingUpdate) - -ReadyForPsbtFunding = _reflection.GeneratedProtocolMessageType('ReadyForPsbtFunding', (_message.Message,), { - 'DESCRIPTOR' : _READYFORPSBTFUNDING, - '__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__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.OpenChannelRequest) - }) -_sym_db.RegisterMessage(OpenChannelRequest) - -OpenStatusUpdate = _reflection.GeneratedProtocolMessageType('OpenStatusUpdate', (_message.Message,), { - 'DESCRIPTOR' : _OPENSTATUSUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.OpenStatusUpdate) - }) -_sym_db.RegisterMessage(OpenStatusUpdate) - -KeyLocator = _reflection.GeneratedProtocolMessageType('KeyLocator', (_message.Message,), { - 'DESCRIPTOR' : _KEYLOCATOR, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.KeyLocator) - }) -_sym_db.RegisterMessage(KeyLocator) - -KeyDescriptor = _reflection.GeneratedProtocolMessageType('KeyDescriptor', (_message.Message,), { - 'DESCRIPTOR' : _KEYDESCRIPTOR, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.KeyDescriptor) - }) -_sym_db.RegisterMessage(KeyDescriptor) - -ChanPointShim = _reflection.GeneratedProtocolMessageType('ChanPointShim', (_message.Message,), { - 'DESCRIPTOR' : _CHANPOINTSHIM, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChanPointShim) - }) -_sym_db.RegisterMessage(ChanPointShim) - -PsbtShim = _reflection.GeneratedProtocolMessageType('PsbtShim', (_message.Message,), { - 'DESCRIPTOR' : _PSBTSHIM, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PsbtShim) - }) -_sym_db.RegisterMessage(PsbtShim) - -FundingShim = _reflection.GeneratedProtocolMessageType('FundingShim', (_message.Message,), { - 'DESCRIPTOR' : _FUNDINGSHIM, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FundingShim) - }) -_sym_db.RegisterMessage(FundingShim) - -FundingShimCancel = _reflection.GeneratedProtocolMessageType('FundingShimCancel', (_message.Message,), { - 'DESCRIPTOR' : _FUNDINGSHIMCANCEL, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FundingShimCancel) - }) -_sym_db.RegisterMessage(FundingShimCancel) - -FundingPsbtVerify = _reflection.GeneratedProtocolMessageType('FundingPsbtVerify', (_message.Message,), { - 'DESCRIPTOR' : _FUNDINGPSBTVERIFY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FundingPsbtVerify) - }) -_sym_db.RegisterMessage(FundingPsbtVerify) - -FundingPsbtFinalize = _reflection.GeneratedProtocolMessageType('FundingPsbtFinalize', (_message.Message,), { - 'DESCRIPTOR' : _FUNDINGPSBTFINALIZE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FundingPsbtFinalize) - }) -_sym_db.RegisterMessage(FundingPsbtFinalize) - -FundingTransitionMsg = _reflection.GeneratedProtocolMessageType('FundingTransitionMsg', (_message.Message,), { - 'DESCRIPTOR' : _FUNDINGTRANSITIONMSG, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FundingTransitionMsg) - }) -_sym_db.RegisterMessage(FundingTransitionMsg) - -FundingStateStepResp = _reflection.GeneratedProtocolMessageType('FundingStateStepResp', (_message.Message,), { - 'DESCRIPTOR' : _FUNDINGSTATESTEPRESP, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FundingStateStepResp) - }) -_sym_db.RegisterMessage(FundingStateStepResp) - -PendingHTLC = _reflection.GeneratedProtocolMessageType('PendingHTLC', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGHTLC, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingHTLC) - }) -_sym_db.RegisterMessage(PendingHTLC) - -PendingChannelsRequest = _reflection.GeneratedProtocolMessageType('PendingChannelsRequest', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGCHANNELSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsRequest) - }) -_sym_db.RegisterMessage(PendingChannelsRequest) - -PendingChannelsResponse = _reflection.GeneratedProtocolMessageType('PendingChannelsResponse', (_message.Message,), { - - 'PendingChannel' : _reflection.GeneratedProtocolMessageType('PendingChannel', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.PendingChannel) - }) - , - - 'PendingOpenChannel' : _reflection.GeneratedProtocolMessageType('PendingOpenChannel', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.PendingOpenChannel) - }) - , - - 'WaitingCloseChannel' : _reflection.GeneratedProtocolMessageType('WaitingCloseChannel', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.WaitingCloseChannel) - }) - , - - 'Commitments' : _reflection.GeneratedProtocolMessageType('Commitments', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_COMMITMENTS, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.Commitments) - }) - , - - 'ClosedChannel' : _reflection.GeneratedProtocolMessageType('ClosedChannel', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.ClosedChannel) - }) - , - - 'ForceClosedChannel' : _reflection.GeneratedProtocolMessageType('ForceClosedChannel', (_message.Message,), { - 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse.ForceClosedChannel) - }) - , - 'DESCRIPTOR' : _PENDINGCHANNELSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PendingChannelsResponse) - }) -_sym_db.RegisterMessage(PendingChannelsResponse) -_sym_db.RegisterMessage(PendingChannelsResponse.PendingChannel) -_sym_db.RegisterMessage(PendingChannelsResponse.PendingOpenChannel) -_sym_db.RegisterMessage(PendingChannelsResponse.WaitingCloseChannel) -_sym_db.RegisterMessage(PendingChannelsResponse.Commitments) -_sym_db.RegisterMessage(PendingChannelsResponse.ClosedChannel) -_sym_db.RegisterMessage(PendingChannelsResponse.ForceClosedChannel) - -ChannelEventSubscription = _reflection.GeneratedProtocolMessageType('ChannelEventSubscription', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELEVENTSUBSCRIPTION, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelEventSubscription) - }) -_sym_db.RegisterMessage(ChannelEventSubscription) - -ChannelEventUpdate = _reflection.GeneratedProtocolMessageType('ChannelEventUpdate', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELEVENTUPDATE, - '__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__' : '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__' : '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__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Amount) - }) -_sym_db.RegisterMessage(Amount) - -ChannelBalanceRequest = _reflection.GeneratedProtocolMessageType('ChannelBalanceRequest', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELBALANCEREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelBalanceRequest) - }) -_sym_db.RegisterMessage(ChannelBalanceRequest) - -ChannelBalanceResponse = _reflection.GeneratedProtocolMessageType('ChannelBalanceResponse', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELBALANCERESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelBalanceResponse) - }) -_sym_db.RegisterMessage(ChannelBalanceResponse) - -QueryRoutesRequest = _reflection.GeneratedProtocolMessageType('QueryRoutesRequest', (_message.Message,), { - - 'DestCustomRecordsEntry' : _reflection.GeneratedProtocolMessageType('DestCustomRecordsEntry', (_message.Message,), { - 'DESCRIPTOR' : _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.QueryRoutesRequest.DestCustomRecordsEntry) - }) - , - 'DESCRIPTOR' : _QUERYROUTESREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.QueryRoutesRequest) - }) -_sym_db.RegisterMessage(QueryRoutesRequest) -_sym_db.RegisterMessage(QueryRoutesRequest.DestCustomRecordsEntry) - -NodePair = _reflection.GeneratedProtocolMessageType('NodePair', (_message.Message,), { - 'DESCRIPTOR' : _NODEPAIR, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodePair) - }) -_sym_db.RegisterMessage(NodePair) - -EdgeLocator = _reflection.GeneratedProtocolMessageType('EdgeLocator', (_message.Message,), { - 'DESCRIPTOR' : _EDGELOCATOR, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.EdgeLocator) - }) -_sym_db.RegisterMessage(EdgeLocator) - -QueryRoutesResponse = _reflection.GeneratedProtocolMessageType('QueryRoutesResponse', (_message.Message,), { - 'DESCRIPTOR' : _QUERYROUTESRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.QueryRoutesResponse) - }) -_sym_db.RegisterMessage(QueryRoutesResponse) - -Hop = _reflection.GeneratedProtocolMessageType('Hop', (_message.Message,), { - - 'CustomRecordsEntry' : _reflection.GeneratedProtocolMessageType('CustomRecordsEntry', (_message.Message,), { - 'DESCRIPTOR' : _HOP_CUSTOMRECORDSENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Hop.CustomRecordsEntry) - }) - , - 'DESCRIPTOR' : _HOP, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Hop) - }) -_sym_db.RegisterMessage(Hop) -_sym_db.RegisterMessage(Hop.CustomRecordsEntry) - -MPPRecord = _reflection.GeneratedProtocolMessageType('MPPRecord', (_message.Message,), { - 'DESCRIPTOR' : _MPPRECORD, - '__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__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Route) - }) -_sym_db.RegisterMessage(Route) - -NodeInfoRequest = _reflection.GeneratedProtocolMessageType('NodeInfoRequest', (_message.Message,), { - 'DESCRIPTOR' : _NODEINFOREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodeInfoRequest) - }) -_sym_db.RegisterMessage(NodeInfoRequest) - -NodeInfo = _reflection.GeneratedProtocolMessageType('NodeInfo', (_message.Message,), { - 'DESCRIPTOR' : _NODEINFO, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodeInfo) - }) -_sym_db.RegisterMessage(NodeInfo) - -LightningNode = _reflection.GeneratedProtocolMessageType('LightningNode', (_message.Message,), { - - 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { - 'DESCRIPTOR' : _LIGHTNINGNODE_FEATURESENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.LightningNode.FeaturesEntry) - }) - , - 'DESCRIPTOR' : _LIGHTNINGNODE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.LightningNode) - }) -_sym_db.RegisterMessage(LightningNode) -_sym_db.RegisterMessage(LightningNode.FeaturesEntry) - -NodeAddress = _reflection.GeneratedProtocolMessageType('NodeAddress', (_message.Message,), { - 'DESCRIPTOR' : _NODEADDRESS, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodeAddress) - }) -_sym_db.RegisterMessage(NodeAddress) - -RoutingPolicy = _reflection.GeneratedProtocolMessageType('RoutingPolicy', (_message.Message,), { - 'DESCRIPTOR' : _ROUTINGPOLICY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.RoutingPolicy) - }) -_sym_db.RegisterMessage(RoutingPolicy) - -ChannelEdge = _reflection.GeneratedProtocolMessageType('ChannelEdge', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELEDGE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelEdge) - }) -_sym_db.RegisterMessage(ChannelEdge) - -ChannelGraphRequest = _reflection.GeneratedProtocolMessageType('ChannelGraphRequest', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELGRAPHREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelGraphRequest) - }) -_sym_db.RegisterMessage(ChannelGraphRequest) - -ChannelGraph = _reflection.GeneratedProtocolMessageType('ChannelGraph', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELGRAPH, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelGraph) - }) -_sym_db.RegisterMessage(ChannelGraph) - -NodeMetricsRequest = _reflection.GeneratedProtocolMessageType('NodeMetricsRequest', (_message.Message,), { - 'DESCRIPTOR' : _NODEMETRICSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodeMetricsRequest) - }) -_sym_db.RegisterMessage(NodeMetricsRequest) - -NodeMetricsResponse = _reflection.GeneratedProtocolMessageType('NodeMetricsResponse', (_message.Message,), { - - 'BetweennessCentralityEntry' : _reflection.GeneratedProtocolMessageType('BetweennessCentralityEntry', (_message.Message,), { - 'DESCRIPTOR' : _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodeMetricsResponse.BetweennessCentralityEntry) - }) - , - 'DESCRIPTOR' : _NODEMETRICSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodeMetricsResponse) - }) -_sym_db.RegisterMessage(NodeMetricsResponse) -_sym_db.RegisterMessage(NodeMetricsResponse.BetweennessCentralityEntry) - -FloatMetric = _reflection.GeneratedProtocolMessageType('FloatMetric', (_message.Message,), { - 'DESCRIPTOR' : _FLOATMETRIC, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FloatMetric) - }) -_sym_db.RegisterMessage(FloatMetric) - -ChanInfoRequest = _reflection.GeneratedProtocolMessageType('ChanInfoRequest', (_message.Message,), { - 'DESCRIPTOR' : _CHANINFOREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChanInfoRequest) - }) -_sym_db.RegisterMessage(ChanInfoRequest) - -NetworkInfoRequest = _reflection.GeneratedProtocolMessageType('NetworkInfoRequest', (_message.Message,), { - 'DESCRIPTOR' : _NETWORKINFOREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NetworkInfoRequest) - }) -_sym_db.RegisterMessage(NetworkInfoRequest) - -NetworkInfo = _reflection.GeneratedProtocolMessageType('NetworkInfo', (_message.Message,), { - 'DESCRIPTOR' : _NETWORKINFO, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NetworkInfo) - }) -_sym_db.RegisterMessage(NetworkInfo) - -StopRequest = _reflection.GeneratedProtocolMessageType('StopRequest', (_message.Message,), { - 'DESCRIPTOR' : _STOPREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.StopRequest) - }) -_sym_db.RegisterMessage(StopRequest) - -StopResponse = _reflection.GeneratedProtocolMessageType('StopResponse', (_message.Message,), { - 'DESCRIPTOR' : _STOPRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.StopResponse) - }) -_sym_db.RegisterMessage(StopResponse) - -GraphTopologySubscription = _reflection.GeneratedProtocolMessageType('GraphTopologySubscription', (_message.Message,), { - 'DESCRIPTOR' : _GRAPHTOPOLOGYSUBSCRIPTION, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GraphTopologySubscription) - }) -_sym_db.RegisterMessage(GraphTopologySubscription) - -GraphTopologyUpdate = _reflection.GeneratedProtocolMessageType('GraphTopologyUpdate', (_message.Message,), { - 'DESCRIPTOR' : _GRAPHTOPOLOGYUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GraphTopologyUpdate) - }) -_sym_db.RegisterMessage(GraphTopologyUpdate) - -NodeUpdate = _reflection.GeneratedProtocolMessageType('NodeUpdate', (_message.Message,), { - - 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { - 'DESCRIPTOR' : _NODEUPDATE_FEATURESENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodeUpdate.FeaturesEntry) - }) - , - 'DESCRIPTOR' : _NODEUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.NodeUpdate) - }) -_sym_db.RegisterMessage(NodeUpdate) -_sym_db.RegisterMessage(NodeUpdate.FeaturesEntry) - -ChannelEdgeUpdate = _reflection.GeneratedProtocolMessageType('ChannelEdgeUpdate', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELEDGEUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelEdgeUpdate) - }) -_sym_db.RegisterMessage(ChannelEdgeUpdate) - -ClosedChannelUpdate = _reflection.GeneratedProtocolMessageType('ClosedChannelUpdate', (_message.Message,), { - 'DESCRIPTOR' : _CLOSEDCHANNELUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ClosedChannelUpdate) - }) -_sym_db.RegisterMessage(ClosedChannelUpdate) - -HopHint = _reflection.GeneratedProtocolMessageType('HopHint', (_message.Message,), { - 'DESCRIPTOR' : _HOPHINT, - '__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__' : '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__' : '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__' : '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__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.InvoiceHTLC.CustomRecordsEntry) - }) - , - 'DESCRIPTOR' : _INVOICEHTLC, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.InvoiceHTLC) - }) -_sym_db.RegisterMessage(InvoiceHTLC) -_sym_db.RegisterMessage(InvoiceHTLC.CustomRecordsEntry) - -AMP = _reflection.GeneratedProtocolMessageType('AMP', (_message.Message,), { - 'DESCRIPTOR' : _AMP, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.AMP) - }) -_sym_db.RegisterMessage(AMP) - -AddInvoiceResponse = _reflection.GeneratedProtocolMessageType('AddInvoiceResponse', (_message.Message,), { - 'DESCRIPTOR' : _ADDINVOICERESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.AddInvoiceResponse) - }) -_sym_db.RegisterMessage(AddInvoiceResponse) - -PaymentHash = _reflection.GeneratedProtocolMessageType('PaymentHash', (_message.Message,), { - 'DESCRIPTOR' : _PAYMENTHASH, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PaymentHash) - }) -_sym_db.RegisterMessage(PaymentHash) - -ListInvoiceRequest = _reflection.GeneratedProtocolMessageType('ListInvoiceRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTINVOICEREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListInvoiceRequest) - }) -_sym_db.RegisterMessage(ListInvoiceRequest) - -ListInvoiceResponse = _reflection.GeneratedProtocolMessageType('ListInvoiceResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTINVOICERESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListInvoiceResponse) - }) -_sym_db.RegisterMessage(ListInvoiceResponse) - -InvoiceSubscription = _reflection.GeneratedProtocolMessageType('InvoiceSubscription', (_message.Message,), { - 'DESCRIPTOR' : _INVOICESUBSCRIPTION, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.InvoiceSubscription) - }) -_sym_db.RegisterMessage(InvoiceSubscription) - -Payment = _reflection.GeneratedProtocolMessageType('Payment', (_message.Message,), { - 'DESCRIPTOR' : _PAYMENT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Payment) - }) -_sym_db.RegisterMessage(Payment) - -HTLCAttempt = _reflection.GeneratedProtocolMessageType('HTLCAttempt', (_message.Message,), { - 'DESCRIPTOR' : _HTLCATTEMPT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.HTLCAttempt) - }) -_sym_db.RegisterMessage(HTLCAttempt) - -ListPaymentsRequest = _reflection.GeneratedProtocolMessageType('ListPaymentsRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTPAYMENTSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListPaymentsRequest) - }) -_sym_db.RegisterMessage(ListPaymentsRequest) - -ListPaymentsResponse = _reflection.GeneratedProtocolMessageType('ListPaymentsResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTPAYMENTSRESPONSE, - '__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__' : '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__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.DeleteAllPaymentsResponse) - }) -_sym_db.RegisterMessage(DeleteAllPaymentsResponse) - -AbandonChannelRequest = _reflection.GeneratedProtocolMessageType('AbandonChannelRequest', (_message.Message,), { - 'DESCRIPTOR' : _ABANDONCHANNELREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.AbandonChannelRequest) - }) -_sym_db.RegisterMessage(AbandonChannelRequest) - -AbandonChannelResponse = _reflection.GeneratedProtocolMessageType('AbandonChannelResponse', (_message.Message,), { - 'DESCRIPTOR' : _ABANDONCHANNELRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.AbandonChannelResponse) - }) -_sym_db.RegisterMessage(AbandonChannelResponse) - -DebugLevelRequest = _reflection.GeneratedProtocolMessageType('DebugLevelRequest', (_message.Message,), { - 'DESCRIPTOR' : _DEBUGLEVELREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.DebugLevelRequest) - }) -_sym_db.RegisterMessage(DebugLevelRequest) - -DebugLevelResponse = _reflection.GeneratedProtocolMessageType('DebugLevelResponse', (_message.Message,), { - 'DESCRIPTOR' : _DEBUGLEVELRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.DebugLevelResponse) - }) -_sym_db.RegisterMessage(DebugLevelResponse) - -PayReqString = _reflection.GeneratedProtocolMessageType('PayReqString', (_message.Message,), { - 'DESCRIPTOR' : _PAYREQSTRING, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PayReqString) - }) -_sym_db.RegisterMessage(PayReqString) - -PayReq = _reflection.GeneratedProtocolMessageType('PayReq', (_message.Message,), { - - 'FeaturesEntry' : _reflection.GeneratedProtocolMessageType('FeaturesEntry', (_message.Message,), { - 'DESCRIPTOR' : _PAYREQ_FEATURESENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PayReq.FeaturesEntry) - }) - , - 'DESCRIPTOR' : _PAYREQ, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PayReq) - }) -_sym_db.RegisterMessage(PayReq) -_sym_db.RegisterMessage(PayReq.FeaturesEntry) - -Feature = _reflection.GeneratedProtocolMessageType('Feature', (_message.Message,), { - 'DESCRIPTOR' : _FEATURE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Feature) - }) -_sym_db.RegisterMessage(Feature) - -FeeReportRequest = _reflection.GeneratedProtocolMessageType('FeeReportRequest', (_message.Message,), { - 'DESCRIPTOR' : _FEEREPORTREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FeeReportRequest) - }) -_sym_db.RegisterMessage(FeeReportRequest) - -ChannelFeeReport = _reflection.GeneratedProtocolMessageType('ChannelFeeReport', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELFEEREPORT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelFeeReport) - }) -_sym_db.RegisterMessage(ChannelFeeReport) - -FeeReportResponse = _reflection.GeneratedProtocolMessageType('FeeReportResponse', (_message.Message,), { - 'DESCRIPTOR' : _FEEREPORTRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.FeeReportResponse) - }) -_sym_db.RegisterMessage(FeeReportResponse) - -PolicyUpdateRequest = _reflection.GeneratedProtocolMessageType('PolicyUpdateRequest', (_message.Message,), { - 'DESCRIPTOR' : _POLICYUPDATEREQUEST, - '__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__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.PolicyUpdateResponse) - }) -_sym_db.RegisterMessage(PolicyUpdateResponse) - -ForwardingHistoryRequest = _reflection.GeneratedProtocolMessageType('ForwardingHistoryRequest', (_message.Message,), { - 'DESCRIPTOR' : _FORWARDINGHISTORYREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ForwardingHistoryRequest) - }) -_sym_db.RegisterMessage(ForwardingHistoryRequest) - -ForwardingEvent = _reflection.GeneratedProtocolMessageType('ForwardingEvent', (_message.Message,), { - 'DESCRIPTOR' : _FORWARDINGEVENT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ForwardingEvent) - }) -_sym_db.RegisterMessage(ForwardingEvent) - -ForwardingHistoryResponse = _reflection.GeneratedProtocolMessageType('ForwardingHistoryResponse', (_message.Message,), { - 'DESCRIPTOR' : _FORWARDINGHISTORYRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ForwardingHistoryResponse) - }) -_sym_db.RegisterMessage(ForwardingHistoryResponse) - -ExportChannelBackupRequest = _reflection.GeneratedProtocolMessageType('ExportChannelBackupRequest', (_message.Message,), { - 'DESCRIPTOR' : _EXPORTCHANNELBACKUPREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ExportChannelBackupRequest) - }) -_sym_db.RegisterMessage(ExportChannelBackupRequest) - -ChannelBackup = _reflection.GeneratedProtocolMessageType('ChannelBackup', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELBACKUP, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelBackup) - }) -_sym_db.RegisterMessage(ChannelBackup) - -MultiChanBackup = _reflection.GeneratedProtocolMessageType('MultiChanBackup', (_message.Message,), { - 'DESCRIPTOR' : _MULTICHANBACKUP, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.MultiChanBackup) - }) -_sym_db.RegisterMessage(MultiChanBackup) - -ChanBackupExportRequest = _reflection.GeneratedProtocolMessageType('ChanBackupExportRequest', (_message.Message,), { - 'DESCRIPTOR' : _CHANBACKUPEXPORTREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChanBackupExportRequest) - }) -_sym_db.RegisterMessage(ChanBackupExportRequest) - -ChanBackupSnapshot = _reflection.GeneratedProtocolMessageType('ChanBackupSnapshot', (_message.Message,), { - 'DESCRIPTOR' : _CHANBACKUPSNAPSHOT, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChanBackupSnapshot) - }) -_sym_db.RegisterMessage(ChanBackupSnapshot) - -ChannelBackups = _reflection.GeneratedProtocolMessageType('ChannelBackups', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELBACKUPS, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelBackups) - }) -_sym_db.RegisterMessage(ChannelBackups) - -RestoreChanBackupRequest = _reflection.GeneratedProtocolMessageType('RestoreChanBackupRequest', (_message.Message,), { - 'DESCRIPTOR' : _RESTORECHANBACKUPREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.RestoreChanBackupRequest) - }) -_sym_db.RegisterMessage(RestoreChanBackupRequest) - -RestoreBackupResponse = _reflection.GeneratedProtocolMessageType('RestoreBackupResponse', (_message.Message,), { - 'DESCRIPTOR' : _RESTOREBACKUPRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.RestoreBackupResponse) - }) -_sym_db.RegisterMessage(RestoreBackupResponse) - -ChannelBackupSubscription = _reflection.GeneratedProtocolMessageType('ChannelBackupSubscription', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELBACKUPSUBSCRIPTION, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelBackupSubscription) - }) -_sym_db.RegisterMessage(ChannelBackupSubscription) - -VerifyChanBackupResponse = _reflection.GeneratedProtocolMessageType('VerifyChanBackupResponse', (_message.Message,), { - 'DESCRIPTOR' : _VERIFYCHANBACKUPRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.VerifyChanBackupResponse) - }) -_sym_db.RegisterMessage(VerifyChanBackupResponse) - -MacaroonPermission = _reflection.GeneratedProtocolMessageType('MacaroonPermission', (_message.Message,), { - 'DESCRIPTOR' : _MACAROONPERMISSION, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.MacaroonPermission) - }) -_sym_db.RegisterMessage(MacaroonPermission) - -BakeMacaroonRequest = _reflection.GeneratedProtocolMessageType('BakeMacaroonRequest', (_message.Message,), { - 'DESCRIPTOR' : _BAKEMACAROONREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.BakeMacaroonRequest) - }) -_sym_db.RegisterMessage(BakeMacaroonRequest) - -BakeMacaroonResponse = _reflection.GeneratedProtocolMessageType('BakeMacaroonResponse', (_message.Message,), { - 'DESCRIPTOR' : _BAKEMACAROONRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.BakeMacaroonResponse) - }) -_sym_db.RegisterMessage(BakeMacaroonResponse) - -ListMacaroonIDsRequest = _reflection.GeneratedProtocolMessageType('ListMacaroonIDsRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTMACAROONIDSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListMacaroonIDsRequest) - }) -_sym_db.RegisterMessage(ListMacaroonIDsRequest) - -ListMacaroonIDsResponse = _reflection.GeneratedProtocolMessageType('ListMacaroonIDsResponse', (_message.Message,), { - 'DESCRIPTOR' : _LISTMACAROONIDSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListMacaroonIDsResponse) - }) -_sym_db.RegisterMessage(ListMacaroonIDsResponse) - -DeleteMacaroonIDRequest = _reflection.GeneratedProtocolMessageType('DeleteMacaroonIDRequest', (_message.Message,), { - 'DESCRIPTOR' : _DELETEMACAROONIDREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.DeleteMacaroonIDRequest) - }) -_sym_db.RegisterMessage(DeleteMacaroonIDRequest) - -DeleteMacaroonIDResponse = _reflection.GeneratedProtocolMessageType('DeleteMacaroonIDResponse', (_message.Message,), { - 'DESCRIPTOR' : _DELETEMACAROONIDRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.DeleteMacaroonIDResponse) - }) -_sym_db.RegisterMessage(DeleteMacaroonIDResponse) - -MacaroonPermissionList = _reflection.GeneratedProtocolMessageType('MacaroonPermissionList', (_message.Message,), { - 'DESCRIPTOR' : _MACAROONPERMISSIONLIST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.MacaroonPermissionList) - }) -_sym_db.RegisterMessage(MacaroonPermissionList) - -ListPermissionsRequest = _reflection.GeneratedProtocolMessageType('ListPermissionsRequest', (_message.Message,), { - 'DESCRIPTOR' : _LISTPERMISSIONSREQUEST, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListPermissionsRequest) - }) -_sym_db.RegisterMessage(ListPermissionsRequest) - -ListPermissionsResponse = _reflection.GeneratedProtocolMessageType('ListPermissionsResponse', (_message.Message,), { - - 'MethodPermissionsEntry' : _reflection.GeneratedProtocolMessageType('MethodPermissionsEntry', (_message.Message,), { - 'DESCRIPTOR' : _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListPermissionsResponse.MethodPermissionsEntry) - }) - , - 'DESCRIPTOR' : _LISTPERMISSIONSRESPONSE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ListPermissionsResponse) - }) -_sym_db.RegisterMessage(ListPermissionsResponse) -_sym_db.RegisterMessage(ListPermissionsResponse.MethodPermissionsEntry) - -Failure = _reflection.GeneratedProtocolMessageType('Failure', (_message.Message,), { - 'DESCRIPTOR' : _FAILURE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.Failure) - }) -_sym_db.RegisterMessage(Failure) - -ChannelUpdate = _reflection.GeneratedProtocolMessageType('ChannelUpdate', (_message.Message,), { - 'DESCRIPTOR' : _CHANNELUPDATE, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChannelUpdate) - }) -_sym_db.RegisterMessage(ChannelUpdate) - -MacaroonId = _reflection.GeneratedProtocolMessageType('MacaroonId', (_message.Message,), { - 'DESCRIPTOR' : _MACAROONID, - '__module__' : 'lightning_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.MacaroonId) - }) -_sym_db.RegisterMessage(MacaroonId) - -Op = _reflection.GeneratedProtocolMessageType('Op', (_message.Message,), { - 'DESCRIPTOR' : _OP, - '__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) - -_LIGHTNING = DESCRIPTOR.services_by_name['Lightning'] +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'lightning_pb2', globals()) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None @@ -1857,8 +53,12 @@ if _descriptor._USE_C_DESCRIPTORS == False: _CHANNEL.fields_by_name['remote_chan_reserve_sat']._serialized_options = b'\030\001' _CHANNEL.fields_by_name['static_remote_key']._options = None _CHANNEL.fields_by_name['static_remote_key']._serialized_options = b'\030\001' + _CHANNEL.fields_by_name['peer_scid_alias']._options = None + _CHANNEL.fields_by_name['peer_scid_alias']._serialized_options = b'0\001' _CHANNELCLOSESUMMARY.fields_by_name['chan_id']._options = None _CHANNELCLOSESUMMARY.fields_by_name['chan_id']._serialized_options = b'0\001' + _CHANNELCLOSESUMMARY.fields_by_name['zero_conf_confirmed_scid']._options = None + _CHANNELCLOSESUMMARY.fields_by_name['zero_conf_confirmed_scid']._serialized_options = b'0\001' _PEER_FEATURESENTRY._options = None _PEER_FEATURESENTRY._serialized_options = b'8\001' _GETINFORESPONSE_FEATURESENTRY._options = None @@ -1905,6 +105,12 @@ if _descriptor._USE_C_DESCRIPTORS == False: _ROUTE.fields_by_name['total_amt']._serialized_options = b'\030\001' _LIGHTNINGNODE_FEATURESENTRY._options = None _LIGHTNINGNODE_FEATURESENTRY._serialized_options = b'8\001' + _LIGHTNINGNODE_CUSTOMRECORDSENTRY._options = None + _LIGHTNINGNODE_CUSTOMRECORDSENTRY._serialized_options = b'8\001' + _ROUTINGPOLICY_CUSTOMRECORDSENTRY._options = None + _ROUTINGPOLICY_CUSTOMRECORDSENTRY._serialized_options = b'8\001' + _CHANNELEDGE_CUSTOMRECORDSENTRY._options = None + _CHANNELEDGE_CUSTOMRECORDSENTRY._serialized_options = b'8\001' _CHANNELEDGE.fields_by_name['channel_id']._options = None _CHANNELEDGE.fields_by_name['channel_id']._serialized_options = b'0\001' _CHANNELEDGE.fields_by_name['last_update']._options = None @@ -1963,464 +169,480 @@ if _descriptor._USE_C_DESCRIPTORS == False: _LIGHTNING.methods_by_name['SendPayment']._serialized_options = b'\210\002\001' _LIGHTNING.methods_by_name['SendToRoute']._options = None _LIGHTNING.methods_by_name['SendToRoute']._serialized_options = b'\210\002\001' - _OUTPUTSCRIPTTYPE._serialized_start=27242 - _OUTPUTSCRIPTTYPE._serialized_end=27537 - _ADDRESSTYPE._serialized_start=27540 - _ADDRESSTYPE._serialized_end=27712 - _COMMITMENTTYPE._serialized_start=27714 - _COMMITMENTTYPE._serialized_end=27834 - _INITIATOR._serialized_start=27836 - _INITIATOR._serialized_end=27933 - _RESOLUTIONTYPE._serialized_start=27935 - _RESOLUTIONTYPE._serialized_end=28031 - _RESOLUTIONOUTCOME._serialized_start=28033 - _RESOLUTIONOUTCOME._serialized_end=28146 - _NODEMETRICTYPE._serialized_start=28148 - _NODEMETRICTYPE._serialized_end=28205 - _INVOICEHTLCSTATE._serialized_start=28207 - _INVOICEHTLCSTATE._serialized_end=28266 - _PAYMENTFAILUREREASON._serialized_start=28269 - _PAYMENTFAILUREREASON._serialized_end=28486 - _FEATUREBIT._serialized_start=28489 - _FEATUREBIT._serialized_end=29080 - _UPDATEFAILURE._serialized_start=29083 - _UPDATEFAILURE._serialized_end=29255 - _SUBSCRIBECUSTOMMESSAGESREQUEST._serialized_start=26 - _SUBSCRIBECUSTOMMESSAGESREQUEST._serialized_end=58 - _CUSTOMMESSAGE._serialized_start=60 - _CUSTOMMESSAGE._serialized_end=117 - _SENDCUSTOMMESSAGEREQUEST._serialized_start=119 - _SENDCUSTOMMESSAGEREQUEST._serialized_end=187 - _SENDCUSTOMMESSAGERESPONSE._serialized_start=189 - _SENDCUSTOMMESSAGERESPONSE._serialized_end=216 - _UTXO._serialized_start=219 - _UTXO._serialized_end=381 - _OUTPUTDETAIL._serialized_start=384 - _OUTPUTDETAIL._serialized_end=542 - _TRANSACTION._serialized_start=545 - _TRANSACTION._serialized_end=861 - _GETTRANSACTIONSREQUEST._serialized_start=863 - _GETTRANSACTIONSREQUEST._serialized_end=946 - _TRANSACTIONDETAILS._serialized_start=948 - _TRANSACTIONDETAILS._serialized_end=1010 - _FEELIMIT._serialized_start=1012 - _FEELIMIT._serialized_end=1089 - _SENDREQUEST._serialized_start=1092 - _SENDREQUEST._serialized_end=1614 - _SENDREQUEST_DESTCUSTOMRECORDSENTRY._serialized_start=1558 - _SENDREQUEST_DESTCUSTOMRECORDSENTRY._serialized_end=1614 - _SENDRESPONSE._serialized_start=1616 - _SENDRESPONSE._serialized_end=1738 - _SENDTOROUTEREQUEST._serialized_start=1740 - _SENDTOROUTEREQUEST._serialized_end=1850 - _CHANNELACCEPTREQUEST._serialized_start=1853 - _CHANNELACCEPTREQUEST._serialized_end=2210 - _CHANNELACCEPTRESPONSE._serialized_start=2213 - _CHANNELACCEPTRESPONSE._serialized_end=2457 - _CHANNELPOINT._serialized_start=2459 - _CHANNELPOINT._serialized_end=2569 - _OUTPOINT._serialized_start=2571 - _OUTPOINT._serialized_end=2641 - _PREVIOUSOUTPOINT._serialized_start=2643 - _PREVIOUSOUTPOINT._serialized_end=2702 - _LIGHTNINGADDRESS._serialized_start=2704 - _LIGHTNINGADDRESS._serialized_end=2752 - _ESTIMATEFEEREQUEST._serialized_start=2755 - _ESTIMATEFEEREQUEST._serialized_end=2962 - _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._serialized_start=2911 - _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._serialized_end=2962 - _ESTIMATEFEERESPONSE._serialized_start=2964 - _ESTIMATEFEERESPONSE._serialized_end=3059 - _SENDMANYREQUEST._serialized_start=3062 - _SENDMANYREQUEST._serialized_end=3327 - _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._serialized_start=2911 - _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._serialized_end=2962 - _SENDMANYRESPONSE._serialized_start=3329 - _SENDMANYRESPONSE._serialized_end=3361 - _SENDCOINSREQUEST._serialized_start=3364 - _SENDCOINSREQUEST._serialized_end=3561 - _SENDCOINSRESPONSE._serialized_start=3563 - _SENDCOINSRESPONSE._serialized_end=3596 - _LISTUNSPENTREQUEST._serialized_start=3598 - _LISTUNSPENTREQUEST._serialized_end=3673 - _LISTUNSPENTRESPONSE._serialized_start=3675 - _LISTUNSPENTRESPONSE._serialized_end=3724 - _NEWADDRESSREQUEST._serialized_start=3726 - _NEWADDRESSREQUEST._serialized_end=3796 - _NEWADDRESSRESPONSE._serialized_start=3798 - _NEWADDRESSRESPONSE._serialized_end=3835 - _SIGNMESSAGEREQUEST._serialized_start=3837 - _SIGNMESSAGEREQUEST._serialized_end=3891 - _SIGNMESSAGERESPONSE._serialized_start=3893 - _SIGNMESSAGERESPONSE._serialized_end=3933 - _VERIFYMESSAGEREQUEST._serialized_start=3935 - _VERIFYMESSAGEREQUEST._serialized_end=3989 - _VERIFYMESSAGERESPONSE._serialized_start=3991 - _VERIFYMESSAGERESPONSE._serialized_end=4045 - _CONNECTPEERREQUEST._serialized_start=4047 - _CONNECTPEERREQUEST._serialized_end=4137 - _CONNECTPEERRESPONSE._serialized_start=4139 - _CONNECTPEERRESPONSE._serialized_end=4160 - _DISCONNECTPEERREQUEST._serialized_start=4162 - _DISCONNECTPEERREQUEST._serialized_end=4202 - _DISCONNECTPEERRESPONSE._serialized_start=4204 - _DISCONNECTPEERRESPONSE._serialized_end=4228 - _HTLC._serialized_start=4231 - _HTLC._serialized_end=4396 - _CHANNELCONSTRAINTS._serialized_start=4399 - _CHANNELCONSTRAINTS._serialized_end=4569 - _CHANNEL._serialized_start=4572 - _CHANNEL._serialized_end=5388 - _LISTCHANNELSREQUEST._serialized_start=5390 - _LISTCHANNELSREQUEST._serialized_end=5512 - _LISTCHANNELSRESPONSE._serialized_start=5514 - _LISTCHANNELSRESPONSE._serialized_end=5570 - _CHANNELCLOSESUMMARY._serialized_start=5573 - _CHANNELCLOSESUMMARY._serialized_end=6126 - _CHANNELCLOSESUMMARY_CLOSURETYPE._serialized_start=5988 - _CHANNELCLOSESUMMARY_CLOSURETYPE._serialized_end=6126 - _RESOLUTION._serialized_start=6129 - _RESOLUTION._serialized_end=6307 - _CLOSEDCHANNELSREQUEST._serialized_start=6310 - _CLOSEDCHANNELSREQUEST._serialized_end=6458 - _CLOSEDCHANNELSRESPONSE._serialized_start=6460 - _CLOSEDCHANNELSRESPONSE._serialized_end=6530 - _PEER._serialized_start=6533 - _PEER._serialized_end=7028 - _PEER_FEATURESENTRY._serialized_start=6883 - _PEER_FEATURESENTRY._serialized_end=6946 - _PEER_SYNCTYPE._serialized_start=6948 - _PEER_SYNCTYPE._serialized_end=7028 - _TIMESTAMPEDERROR._serialized_start=7030 - _TIMESTAMPEDERROR._serialized_end=7082 - _LISTPEERSREQUEST._serialized_start=7084 - _LISTPEERSREQUEST._serialized_end=7124 - _LISTPEERSRESPONSE._serialized_start=7126 - _LISTPEERSRESPONSE._serialized_end=7173 - _PEEREVENTSUBSCRIPTION._serialized_start=7175 - _PEEREVENTSUBSCRIPTION._serialized_end=7198 - _PEEREVENT._serialized_start=7200 - _PEEREVENT._serialized_end=7318 - _PEEREVENT_EVENTTYPE._serialized_start=7272 - _PEEREVENT_EVENTTYPE._serialized_end=7318 - _GETINFOREQUEST._serialized_start=7320 - _GETINFOREQUEST._serialized_end=7336 - _GETINFORESPONSE._serialized_start=7339 - _GETINFORESPONSE._serialized_end=7907 - _GETINFORESPONSE_FEATURESENTRY._serialized_start=6883 - _GETINFORESPONSE_FEATURESENTRY._serialized_end=6946 - _GETRECOVERYINFOREQUEST._serialized_start=7909 - _GETRECOVERYINFOREQUEST._serialized_end=7933 - _GETRECOVERYINFORESPONSE._serialized_start=7935 - _GETRECOVERYINFORESPONSE._serialized_end=8028 - _CHAIN._serialized_start=8030 - _CHAIN._serialized_end=8069 - _CONFIRMATIONUPDATE._serialized_start=8071 - _CONFIRMATIONUPDATE._serialized_end=8156 - _CHANNELOPENUPDATE._serialized_start=8158 - _CHANNELOPENUPDATE._serialized_end=8221 - _CHANNELCLOSEUPDATE._serialized_start=8223 - _CHANNELCLOSEUPDATE._serialized_end=8282 - _CLOSECHANNELREQUEST._serialized_start=8285 - _CLOSECHANNELREQUEST._serialized_end=8461 - _CLOSESTATUSUPDATE._serialized_start=8463 - _CLOSESTATUSUPDATE._serialized_end=8588 - _PENDINGUPDATE._serialized_start=8590 - _PENDINGUPDATE._serialized_end=8641 - _READYFORPSBTFUNDING._serialized_start=8643 - _READYFORPSBTFUNDING._serialized_end=8727 - _BATCHOPENCHANNELREQUEST._serialized_start=8730 - _BATCHOPENCHANNELREQUEST._serialized_end=8903 - _BATCHOPENCHANNEL._serialized_start=8906 - _BATCHOPENCHANNEL._serialized_end=9155 - _BATCHOPENCHANNELRESPONSE._serialized_start=9157 - _BATCHOPENCHANNELRESPONSE._serialized_end=9231 - _OPENCHANNELREQUEST._serialized_start=9234 - _OPENCHANNELREQUEST._serialized_end=9740 - _OPENSTATUSUPDATE._serialized_start=9743 - _OPENSTATUSUPDATE._serialized_end=9938 - _KEYLOCATOR._serialized_start=9940 - _KEYLOCATOR._serialized_end=9991 - _KEYDESCRIPTOR._serialized_start=9993 - _KEYDESCRIPTOR._serialized_end=10067 - _CHANPOINTSHIM._serialized_start=10070 - _CHANPOINTSHIM._serialized_end=10246 - _PSBTSHIM._serialized_start=10248 - _PSBTSHIM._serialized_end=10322 - _FUNDINGSHIM._serialized_start=10324 - _FUNDINGSHIM._serialized_end=10432 - _FUNDINGSHIMCANCEL._serialized_start=10434 - _FUNDINGSHIMCANCEL._serialized_end=10478 - _FUNDINGPSBTVERIFY._serialized_start=10480 - _FUNDINGPSBTVERIFY._serialized_end=10568 - _FUNDINGPSBTFINALIZE._serialized_start=10570 - _FUNDINGPSBTFINALIZE._serialized_end=10659 - _FUNDINGTRANSITIONMSG._serialized_start=10662 - _FUNDINGTRANSITIONMSG._serialized_end=10891 - _FUNDINGSTATESTEPRESP._serialized_start=10893 - _FUNDINGSTATESTEPRESP._serialized_end=10915 - _PENDINGHTLC._serialized_start=10918 - _PENDINGHTLC._serialized_end=11052 - _PENDINGCHANNELSREQUEST._serialized_start=11054 - _PENDINGCHANNELSREQUEST._serialized_end=11078 - _PENDINGCHANNELSRESPONSE._serialized_start=11081 - _PENDINGCHANNELSRESPONSE._serialized_end=12864 - _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL._serialized_start=11479 - _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL._serialized_end=11835 - _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL._serialized_start=11838 - _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL._serialized_end=11991 - _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL._serialized_start=11994 - _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL._serialized_end=12189 - _PENDINGCHANNELSRESPONSE_COMMITMENTS._serialized_start=12192 - _PENDINGCHANNELSRESPONSE_COMMITMENTS._serialized_end=12375 - _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL._serialized_start=12377 - _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL._serialized_end=12478 - _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL._serialized_start=12481 - _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL._serialized_end=12864 - _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE._serialized_start=12815 - _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE._serialized_end=12864 - _CHANNELEVENTSUBSCRIPTION._serialized_start=12866 - _CHANNELEVENTSUBSCRIPTION._serialized_end=12892 - _CHANNELEVENTUPDATE._serialized_start=12895 - _CHANNELEVENTUPDATE._serialized_end=13426 - _CHANNELEVENTUPDATE_UPDATETYPE._serialized_start=13269 - _CHANNELEVENTUPDATE_UPDATETYPE._serialized_end=13415 - _WALLETACCOUNTBALANCE._serialized_start=13428 - _WALLETACCOUNTBALANCE._serialized_end=13506 - _WALLETBALANCEREQUEST._serialized_start=13508 - _WALLETBALANCEREQUEST._serialized_end=13530 - _WALLETBALANCERESPONSE._serialized_start=13533 - _WALLETBALANCERESPONSE._serialized_end=13856 - _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._serialized_start=13774 - _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._serialized_end=13856 - _AMOUNT._serialized_start=13858 - _AMOUNT._serialized_end=13893 - _CHANNELBALANCEREQUEST._serialized_start=13895 - _CHANNELBALANCEREQUEST._serialized_end=13918 - _CHANNELBALANCERESPONSE._serialized_start=13921 - _CHANNELBALANCERESPONSE._serialized_end=14277 - _QUERYROUTESREQUEST._serialized_start=14280 - _QUERYROUTESREQUEST._serialized_end=14891 - _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._serialized_start=1558 - _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._serialized_end=1614 - _NODEPAIR._serialized_start=14893 - _NODEPAIR._serialized_end=14929 - _EDGELOCATOR._serialized_start=14931 - _EDGELOCATOR._serialized_end=14995 - _QUERYROUTESRESPONSE._serialized_start=14997 - _QUERYROUTESRESPONSE._serialized_end=15070 - _HOP._serialized_start=15073 - _HOP._serialized_end=15479 - _HOP_CUSTOMRECORDSENTRY._serialized_start=15427 - _HOP_CUSTOMRECORDSENTRY._serialized_end=15479 - _MPPRECORD._serialized_start=15481 - _MPPRECORD._serialized_end=15538 - _AMPRECORD._serialized_start=15540 - _AMPRECORD._serialized_end=15608 - _ROUTE._serialized_start=15611 - _ROUTE._serialized_end=15765 - _NODEINFOREQUEST._serialized_start=15767 - _NODEINFOREQUEST._serialized_end=15827 - _NODEINFO._serialized_start=15830 - _NODEINFO._serialized_end=15960 - _LIGHTNINGNODE._serialized_start=15963 - _LIGHTNINGNODE._serialized_end=16204 - _LIGHTNINGNODE_FEATURESENTRY._serialized_start=6883 - _LIGHTNINGNODE_FEATURESENTRY._serialized_end=6946 - _NODEADDRESS._serialized_start=16206 - _NODEADDRESS._serialized_end=16250 - _ROUTINGPOLICY._serialized_start=16253 - _ROUTINGPOLICY._serialized_end=16425 - _CHANNELEDGE._serialized_start=16428 - _CHANNELEDGE._serialized_end=16654 - _CHANNELGRAPHREQUEST._serialized_start=16656 - _CHANNELGRAPHREQUEST._serialized_end=16706 - _CHANNELGRAPH._serialized_start=16708 - _CHANNELGRAPH._serialized_end=16794 - _NODEMETRICSREQUEST._serialized_start=16796 - _NODEMETRICSREQUEST._serialized_end=16854 - _NODEMETRICSRESPONSE._serialized_start=16857 - _NODEMETRICSRESPONSE._serialized_end=17047 - _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._serialized_start=16967 - _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._serialized_end=17047 - _FLOATMETRIC._serialized_start=17049 - _FLOATMETRIC._serialized_end=17103 - _CHANINFOREQUEST._serialized_start=17105 - _CHANINFOREQUEST._serialized_end=17143 - _NETWORKINFOREQUEST._serialized_start=17145 - _NETWORKINFOREQUEST._serialized_end=17165 - _NETWORKINFO._serialized_start=17168 - _NETWORKINFO._serialized_end=17463 - _STOPREQUEST._serialized_start=17465 - _STOPREQUEST._serialized_end=17478 - _STOPRESPONSE._serialized_start=17480 - _STOPRESPONSE._serialized_end=17494 - _GRAPHTOPOLOGYSUBSCRIPTION._serialized_start=17496 - _GRAPHTOPOLOGYSUBSCRIPTION._serialized_end=17523 - _GRAPHTOPOLOGYUPDATE._serialized_start=17526 - _GRAPHTOPOLOGYUPDATE._serialized_end=17689 - _NODEUPDATE._serialized_start=17692 - _NODEUPDATE._serialized_end=17968 - _NODEUPDATE_FEATURESENTRY._serialized_start=6883 - _NODEUPDATE_FEATURESENTRY._serialized_end=6946 - _CHANNELEDGEUPDATE._serialized_start=17971 - _CHANNELEDGEUPDATE._serialized_end=18167 - _CLOSEDCHANNELUPDATE._serialized_start=18169 - _CLOSEDCHANNELUPDATE._serialized_end=18293 - _HOPHINT._serialized_start=18296 - _HOPHINT._serialized_end=18430 - _SETID._serialized_start=18432 - _SETID._serialized_end=18455 - _ROUTEHINT._serialized_start=18457 - _ROUTEHINT._serialized_end=18503 - _AMPINVOICESTATE._serialized_start=18505 - _AMPINVOICESTATE._serialized_end=18628 - _INVOICE._serialized_start=18631 - _INVOICE._serialized_end=19532 - _INVOICE_FEATURESENTRY._serialized_start=6883 - _INVOICE_FEATURESENTRY._serialized_end=6946 - _INVOICE_AMPINVOICESTATEENTRY._serialized_start=19381 - _INVOICE_AMPINVOICESTATEENTRY._serialized_end=19459 - _INVOICE_INVOICESTATE._serialized_start=19461 - _INVOICE_INVOICESTATE._serialized_end=19526 - _INVOICEHTLC._serialized_start=19535 - _INVOICEHTLC._serialized_end=19906 - _INVOICEHTLC_CUSTOMRECORDSENTRY._serialized_start=15427 - _INVOICEHTLC_CUSTOMRECORDSENTRY._serialized_end=15479 - _AMP._serialized_start=19908 - _AMP._serialized_end=20002 - _ADDINVOICERESPONSE._serialized_start=20004 - _ADDINVOICERESPONSE._serialized_end=20106 - _PAYMENTHASH._serialized_start=20108 - _PAYMENTHASH._serialized_end=20161 - _LISTINVOICEREQUEST._serialized_start=20163 - _LISTINVOICEREQUEST._serialized_end=20271 - _LISTINVOICERESPONSE._serialized_start=20273 - _LISTINVOICERESPONSE._serialized_end=20383 - _INVOICESUBSCRIPTION._serialized_start=20385 - _INVOICESUBSCRIPTION._serialized_end=20447 - _PAYMENT._serialized_start=20450 - _PAYMENT._serialized_end=20930 - _PAYMENT_PAYMENTSTATUS._serialized_start=20854 - _PAYMENT_PAYMENTSTATUS._serialized_end=20924 - _HTLCATTEMPT._serialized_start=20933 - _HTLCATTEMPT._serialized_end=21199 - _HTLCATTEMPT_HTLCSTATUS._serialized_start=21145 - _HTLCATTEMPT_HTLCSTATUS._serialized_end=21199 - _LISTPAYMENTSREQUEST._serialized_start=21202 - _LISTPAYMENTSREQUEST._serialized_end=21343 - _LISTPAYMENTSRESPONSE._serialized_start=21346 - _LISTPAYMENTSRESPONSE._serialized_end=21485 - _DELETEPAYMENTREQUEST._serialized_start=21487 - _DELETEPAYMENTREQUEST._serialized_end=21558 - _DELETEALLPAYMENTSREQUEST._serialized_start=21560 - _DELETEALLPAYMENTSREQUEST._serialized_end=21643 - _DELETEPAYMENTRESPONSE._serialized_start=21645 - _DELETEPAYMENTRESPONSE._serialized_end=21668 - _DELETEALLPAYMENTSRESPONSE._serialized_start=21670 - _DELETEALLPAYMENTSRESPONSE._serialized_end=21697 - _ABANDONCHANNELREQUEST._serialized_start=21700 - _ABANDONCHANNELREQUEST._serialized_end=21834 - _ABANDONCHANNELRESPONSE._serialized_start=21836 - _ABANDONCHANNELRESPONSE._serialized_end=21860 - _DEBUGLEVELREQUEST._serialized_start=21862 - _DEBUGLEVELREQUEST._serialized_end=21915 - _DEBUGLEVELRESPONSE._serialized_start=21917 - _DEBUGLEVELRESPONSE._serialized_end=21958 - _PAYREQSTRING._serialized_start=21960 - _PAYREQSTRING._serialized_end=21991 - _PAYREQ._serialized_start=21994 - _PAYREQ._serialized_end=22384 - _PAYREQ_FEATURESENTRY._serialized_start=6883 - _PAYREQ_FEATURESENTRY._serialized_end=6946 - _FEATURE._serialized_start=22386 - _FEATURE._serialized_end=22448 - _FEEREPORTREQUEST._serialized_start=22450 - _FEEREPORTREQUEST._serialized_end=22468 - _CHANNELFEEREPORT._serialized_start=22470 - _CHANNELFEEREPORT._serialized_end=22594 - _FEEREPORTRESPONSE._serialized_start=22597 - _FEEREPORTRESPONSE._serialized_end=22729 - _POLICYUPDATEREQUEST._serialized_start=22732 - _POLICYUPDATEREQUEST._serialized_end=22990 - _FAILEDUPDATE._serialized_start=22992 - _FAILEDUPDATE._serialized_end=23101 - _POLICYUPDATERESPONSE._serialized_start=23103 - _POLICYUPDATERESPONSE._serialized_end=23170 - _FORWARDINGHISTORYREQUEST._serialized_start=23172 - _FORWARDINGHISTORYREQUEST._serialized_end=23282 - _FORWARDINGEVENT._serialized_start=23285 - _FORWARDINGEVENT._serialized_end=23503 - _FORWARDINGHISTORYRESPONSE._serialized_start=23505 - _FORWARDINGHISTORYRESPONSE._serialized_end=23610 - _EXPORTCHANNELBACKUPREQUEST._serialized_start=23612 - _EXPORTCHANNELBACKUPREQUEST._serialized_end=23681 - _CHANNELBACKUP._serialized_start=23683 - _CHANNELBACKUP._serialized_end=23760 - _MULTICHANBACKUP._serialized_start=23762 - _MULTICHANBACKUP._serialized_end=23848 - _CHANBACKUPEXPORTREQUEST._serialized_start=23850 - _CHANBACKUPEXPORTREQUEST._serialized_end=23875 - _CHANBACKUPSNAPSHOT._serialized_start=23877 - _CHANBACKUPSNAPSHOT._serialized_end=24000 - _CHANNELBACKUPS._serialized_start=24002 - _CHANNELBACKUPS._serialized_end=24062 - _RESTORECHANBACKUPREQUEST._serialized_start=24064 - _RESTORECHANBACKUPREQUEST._serialized_end=24176 - _RESTOREBACKUPRESPONSE._serialized_start=24178 - _RESTOREBACKUPRESPONSE._serialized_end=24201 - _CHANNELBACKUPSUBSCRIPTION._serialized_start=24203 - _CHANNELBACKUPSUBSCRIPTION._serialized_end=24230 - _VERIFYCHANBACKUPRESPONSE._serialized_start=24232 - _VERIFYCHANBACKUPRESPONSE._serialized_end=24258 - _MACAROONPERMISSION._serialized_start=24260 - _MACAROONPERMISSION._serialized_end=24312 - _BAKEMACAROONREQUEST._serialized_start=24314 - _BAKEMACAROONREQUEST._serialized_end=24440 - _BAKEMACAROONRESPONSE._serialized_start=24442 - _BAKEMACAROONRESPONSE._serialized_end=24482 - _LISTMACAROONIDSREQUEST._serialized_start=24484 - _LISTMACAROONIDSREQUEST._serialized_end=24508 - _LISTMACAROONIDSRESPONSE._serialized_start=24510 - _LISTMACAROONIDSRESPONSE._serialized_end=24557 - _DELETEMACAROONIDREQUEST._serialized_start=24559 - _DELETEMACAROONIDREQUEST._serialized_end=24605 - _DELETEMACAROONIDRESPONSE._serialized_start=24607 - _DELETEMACAROONIDRESPONSE._serialized_end=24650 - _MACAROONPERMISSIONLIST._serialized_start=24652 - _MACAROONPERMISSIONLIST._serialized_end=24724 - _LISTPERMISSIONSREQUEST._serialized_start=24726 - _LISTPERMISSIONSREQUEST._serialized_end=24750 - _LISTPERMISSIONSRESPONSE._serialized_start=24753 - _LISTPERMISSIONSRESPONSE._serialized_end=24950 - _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._serialized_start=24863 - _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._serialized_end=24950 - _FAILURE._serialized_start=24953 - _FAILURE._serialized_end=25934 - _FAILURE_FAILURECODE._serialized_start=25177 - _FAILURE_FAILURECODE._serialized_end=25928 - _CHANNELUPDATE._serialized_start=25937 - _CHANNELUPDATE._serialized_end=26219 - _MACAROONID._serialized_start=26221 - _MACAROONID._serialized_end=26291 - _OP._serialized_start=26293 - _OP._serialized_end=26330 - _CHECKMACPERMREQUEST._serialized_start=26332 - _CHECKMACPERMREQUEST._serialized_end=26439 - _CHECKMACPERMRESPONSE._serialized_start=26441 - _CHECKMACPERMRESPONSE._serialized_end=26478 - _RPCMIDDLEWAREREQUEST._serialized_start=26481 - _RPCMIDDLEWAREREQUEST._serialized_end=26731 - _STREAMAUTH._serialized_start=26733 - _STREAMAUTH._serialized_end=26770 - _RPCMESSAGE._serialized_start=26772 - _RPCMESSAGE._serialized_end=26868 - _RPCMIDDLEWARERESPONSE._serialized_start=26871 - _RPCMIDDLEWARERESPONSE._serialized_end=27033 - _MIDDLEWAREREGISTRATION._serialized_start=27035 - _MIDDLEWAREREGISTRATION._serialized_end=27145 - _INTERCEPTFEEDBACK._serialized_start=27147 - _INTERCEPTFEEDBACK._serialized_end=27239 - _LIGHTNING._serialized_start=29258 - _LIGHTNING._serialized_end=34067 + _OUTPUTSCRIPTTYPE._serialized_start=28607 + _OUTPUTSCRIPTTYPE._serialized_end=28938 + _ADDRESSTYPE._serialized_start=28941 + _ADDRESSTYPE._serialized_end=29113 + _COMMITMENTTYPE._serialized_start=29115 + _COMMITMENTTYPE._serialized_end=29235 + _INITIATOR._serialized_start=29237 + _INITIATOR._serialized_end=29334 + _RESOLUTIONTYPE._serialized_start=29336 + _RESOLUTIONTYPE._serialized_end=29432 + _RESOLUTIONOUTCOME._serialized_start=29434 + _RESOLUTIONOUTCOME._serialized_end=29547 + _NODEMETRICTYPE._serialized_start=29549 + _NODEMETRICTYPE._serialized_end=29606 + _INVOICEHTLCSTATE._serialized_start=29608 + _INVOICEHTLCSTATE._serialized_end=29667 + _PAYMENTFAILUREREASON._serialized_start=29670 + _PAYMENTFAILUREREASON._serialized_end=29887 + _FEATUREBIT._serialized_start=29890 + _FEATUREBIT._serialized_end=30481 + _UPDATEFAILURE._serialized_start=30484 + _UPDATEFAILURE._serialized_end=30656 + _LOOKUPHTLCRESOLUTIONREQUEST._serialized_start=26 + _LOOKUPHTLCRESOLUTIONREQUEST._serialized_end=92 + _LOOKUPHTLCRESOLUTIONRESPONSE._serialized_start=94 + _LOOKUPHTLCRESOLUTIONRESPONSE._serialized_end=159 + _SUBSCRIBECUSTOMMESSAGESREQUEST._serialized_start=161 + _SUBSCRIBECUSTOMMESSAGESREQUEST._serialized_end=193 + _CUSTOMMESSAGE._serialized_start=195 + _CUSTOMMESSAGE._serialized_end=252 + _SENDCUSTOMMESSAGEREQUEST._serialized_start=254 + _SENDCUSTOMMESSAGEREQUEST._serialized_end=322 + _SENDCUSTOMMESSAGERESPONSE._serialized_start=324 + _SENDCUSTOMMESSAGERESPONSE._serialized_end=351 + _UTXO._serialized_start=354 + _UTXO._serialized_end=516 + _OUTPUTDETAIL._serialized_start=519 + _OUTPUTDETAIL._serialized_end=677 + _TRANSACTION._serialized_start=680 + _TRANSACTION._serialized_end=996 + _GETTRANSACTIONSREQUEST._serialized_start=998 + _GETTRANSACTIONSREQUEST._serialized_end=1081 + _TRANSACTIONDETAILS._serialized_start=1083 + _TRANSACTIONDETAILS._serialized_end=1145 + _FEELIMIT._serialized_start=1147 + _FEELIMIT._serialized_end=1224 + _SENDREQUEST._serialized_start=1227 + _SENDREQUEST._serialized_end=1749 + _SENDREQUEST_DESTCUSTOMRECORDSENTRY._serialized_start=1693 + _SENDREQUEST_DESTCUSTOMRECORDSENTRY._serialized_end=1749 + _SENDRESPONSE._serialized_start=1751 + _SENDRESPONSE._serialized_end=1873 + _SENDTOROUTEREQUEST._serialized_start=1875 + _SENDTOROUTEREQUEST._serialized_end=1985 + _CHANNELACCEPTREQUEST._serialized_start=1988 + _CHANNELACCEPTREQUEST._serialized_end=2396 + _CHANNELACCEPTRESPONSE._serialized_start=2399 + _CHANNELACCEPTRESPONSE._serialized_end=2662 + _CHANNELPOINT._serialized_start=2664 + _CHANNELPOINT._serialized_end=2774 + _OUTPOINT._serialized_start=2776 + _OUTPOINT._serialized_end=2846 + _PREVIOUSOUTPOINT._serialized_start=2848 + _PREVIOUSOUTPOINT._serialized_end=2907 + _LIGHTNINGADDRESS._serialized_start=2909 + _LIGHTNINGADDRESS._serialized_end=2957 + _ESTIMATEFEEREQUEST._serialized_start=2960 + _ESTIMATEFEEREQUEST._serialized_end=3167 + _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._serialized_start=3116 + _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._serialized_end=3167 + _ESTIMATEFEERESPONSE._serialized_start=3169 + _ESTIMATEFEERESPONSE._serialized_end=3264 + _SENDMANYREQUEST._serialized_start=3267 + _SENDMANYREQUEST._serialized_end=3532 + _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._serialized_start=3116 + _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._serialized_end=3167 + _SENDMANYRESPONSE._serialized_start=3534 + _SENDMANYRESPONSE._serialized_end=3566 + _SENDCOINSREQUEST._serialized_start=3569 + _SENDCOINSREQUEST._serialized_end=3766 + _SENDCOINSRESPONSE._serialized_start=3768 + _SENDCOINSRESPONSE._serialized_end=3801 + _LISTUNSPENTREQUEST._serialized_start=3803 + _LISTUNSPENTREQUEST._serialized_end=3878 + _LISTUNSPENTRESPONSE._serialized_start=3880 + _LISTUNSPENTRESPONSE._serialized_end=3929 + _NEWADDRESSREQUEST._serialized_start=3931 + _NEWADDRESSREQUEST._serialized_end=4001 + _NEWADDRESSRESPONSE._serialized_start=4003 + _NEWADDRESSRESPONSE._serialized_end=4040 + _SIGNMESSAGEREQUEST._serialized_start=4042 + _SIGNMESSAGEREQUEST._serialized_end=4096 + _SIGNMESSAGERESPONSE._serialized_start=4098 + _SIGNMESSAGERESPONSE._serialized_end=4138 + _VERIFYMESSAGEREQUEST._serialized_start=4140 + _VERIFYMESSAGEREQUEST._serialized_end=4194 + _VERIFYMESSAGERESPONSE._serialized_start=4196 + _VERIFYMESSAGERESPONSE._serialized_end=4250 + _CONNECTPEERREQUEST._serialized_start=4252 + _CONNECTPEERREQUEST._serialized_end=4342 + _CONNECTPEERRESPONSE._serialized_start=4344 + _CONNECTPEERRESPONSE._serialized_end=4365 + _DISCONNECTPEERREQUEST._serialized_start=4367 + _DISCONNECTPEERREQUEST._serialized_end=4407 + _DISCONNECTPEERRESPONSE._serialized_start=4409 + _DISCONNECTPEERRESPONSE._serialized_end=4433 + _HTLC._serialized_start=4436 + _HTLC._serialized_end=4601 + _CHANNELCONSTRAINTS._serialized_start=4604 + _CHANNELCONSTRAINTS._serialized_end=4774 + _CHANNEL._serialized_start=4777 + _CHANNEL._serialized_end=5716 + _LISTCHANNELSREQUEST._serialized_start=5719 + _LISTCHANNELSREQUEST._serialized_end=5868 + _LISTCHANNELSRESPONSE._serialized_start=5870 + _LISTCHANNELSRESPONSE._serialized_end=5926 + _ALIASMAP._serialized_start=5928 + _ALIASMAP._serialized_end=5974 + _LISTALIASESREQUEST._serialized_start=5976 + _LISTALIASESREQUEST._serialized_end=5996 + _LISTALIASESRESPONSE._serialized_start=5998 + _LISTALIASESRESPONSE._serialized_end=6056 + _CHANNELCLOSESUMMARY._serialized_start=6059 + _CHANNELCLOSESUMMARY._serialized_end=6671 + _CHANNELCLOSESUMMARY_CLOSURETYPE._serialized_start=6533 + _CHANNELCLOSESUMMARY_CLOSURETYPE._serialized_end=6671 + _RESOLUTION._serialized_start=6674 + _RESOLUTION._serialized_end=6852 + _CLOSEDCHANNELSREQUEST._serialized_start=6855 + _CLOSEDCHANNELSREQUEST._serialized_end=7003 + _CLOSEDCHANNELSRESPONSE._serialized_start=7005 + _CLOSEDCHANNELSRESPONSE._serialized_end=7075 + _PEER._serialized_start=7078 + _PEER._serialized_end=7573 + _PEER_FEATURESENTRY._serialized_start=7428 + _PEER_FEATURESENTRY._serialized_end=7491 + _PEER_SYNCTYPE._serialized_start=7493 + _PEER_SYNCTYPE._serialized_end=7573 + _TIMESTAMPEDERROR._serialized_start=7575 + _TIMESTAMPEDERROR._serialized_end=7627 + _LISTPEERSREQUEST._serialized_start=7629 + _LISTPEERSREQUEST._serialized_end=7669 + _LISTPEERSRESPONSE._serialized_start=7671 + _LISTPEERSRESPONSE._serialized_end=7718 + _PEEREVENTSUBSCRIPTION._serialized_start=7720 + _PEEREVENTSUBSCRIPTION._serialized_end=7743 + _PEEREVENT._serialized_start=7745 + _PEEREVENT._serialized_end=7863 + _PEEREVENT_EVENTTYPE._serialized_start=7817 + _PEEREVENT_EVENTTYPE._serialized_end=7863 + _GETINFOREQUEST._serialized_start=7865 + _GETINFOREQUEST._serialized_end=7881 + _GETINFORESPONSE._serialized_start=7884 + _GETINFORESPONSE._serialized_end=8490 + _GETINFORESPONSE_FEATURESENTRY._serialized_start=7428 + _GETINFORESPONSE_FEATURESENTRY._serialized_end=7491 + _GETRECOVERYINFOREQUEST._serialized_start=8492 + _GETRECOVERYINFOREQUEST._serialized_end=8516 + _GETRECOVERYINFORESPONSE._serialized_start=8518 + _GETRECOVERYINFORESPONSE._serialized_end=8611 + _CHAIN._serialized_start=8613 + _CHAIN._serialized_end=8652 + _CONFIRMATIONUPDATE._serialized_start=8654 + _CONFIRMATIONUPDATE._serialized_end=8739 + _CHANNELOPENUPDATE._serialized_start=8741 + _CHANNELOPENUPDATE._serialized_end=8804 + _CHANNELCLOSEUPDATE._serialized_start=8806 + _CHANNELCLOSEUPDATE._serialized_end=8865 + _CLOSECHANNELREQUEST._serialized_start=8868 + _CLOSECHANNELREQUEST._serialized_end=9071 + _CLOSESTATUSUPDATE._serialized_start=9073 + _CLOSESTATUSUPDATE._serialized_end=9198 + _PENDINGUPDATE._serialized_start=9200 + _PENDINGUPDATE._serialized_end=9251 + _READYFORPSBTFUNDING._serialized_start=9253 + _READYFORPSBTFUNDING._serialized_end=9337 + _BATCHOPENCHANNELREQUEST._serialized_start=9340 + _BATCHOPENCHANNELREQUEST._serialized_end=9513 + _BATCHOPENCHANNEL._serialized_start=9516 + _BATCHOPENCHANNEL._serialized_end=9765 + _BATCHOPENCHANNELRESPONSE._serialized_start=9767 + _BATCHOPENCHANNELRESPONSE._serialized_end=9841 + _OPENCHANNELREQUEST._serialized_start=9844 + _OPENCHANNELREQUEST._serialized_end=10520 + _OPENSTATUSUPDATE._serialized_start=10523 + _OPENSTATUSUPDATE._serialized_end=10718 + _KEYLOCATOR._serialized_start=10720 + _KEYLOCATOR._serialized_end=10771 + _KEYDESCRIPTOR._serialized_start=10773 + _KEYDESCRIPTOR._serialized_end=10847 + _CHANPOINTSHIM._serialized_start=10850 + _CHANPOINTSHIM._serialized_end=11026 + _PSBTSHIM._serialized_start=11028 + _PSBTSHIM._serialized_end=11102 + _FUNDINGSHIM._serialized_start=11104 + _FUNDINGSHIM._serialized_end=11212 + _FUNDINGSHIMCANCEL._serialized_start=11214 + _FUNDINGSHIMCANCEL._serialized_end=11258 + _FUNDINGPSBTVERIFY._serialized_start=11260 + _FUNDINGPSBTVERIFY._serialized_end=11348 + _FUNDINGPSBTFINALIZE._serialized_start=11350 + _FUNDINGPSBTFINALIZE._serialized_end=11439 + _FUNDINGTRANSITIONMSG._serialized_start=11442 + _FUNDINGTRANSITIONMSG._serialized_end=11671 + _FUNDINGSTATESTEPRESP._serialized_start=11673 + _FUNDINGSTATESTEPRESP._serialized_end=11695 + _PENDINGHTLC._serialized_start=11698 + _PENDINGHTLC._serialized_end=11832 + _PENDINGCHANNELSREQUEST._serialized_start=11834 + _PENDINGCHANNELSREQUEST._serialized_end=11858 + _PENDINGCHANNELSRESPONSE._serialized_start=11861 + _PENDINGCHANNELSRESPONSE._serialized_end=13644 + _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL._serialized_start=12259 + _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL._serialized_end=12615 + _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL._serialized_start=12618 + _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL._serialized_end=12771 + _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL._serialized_start=12774 + _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL._serialized_end=12969 + _PENDINGCHANNELSRESPONSE_COMMITMENTS._serialized_start=12972 + _PENDINGCHANNELSRESPONSE_COMMITMENTS._serialized_end=13155 + _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL._serialized_start=13157 + _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL._serialized_end=13258 + _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL._serialized_start=13261 + _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL._serialized_end=13644 + _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE._serialized_start=13595 + _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE._serialized_end=13644 + _CHANNELEVENTSUBSCRIPTION._serialized_start=13646 + _CHANNELEVENTSUBSCRIPTION._serialized_end=13672 + _CHANNELEVENTUPDATE._serialized_start=13675 + _CHANNELEVENTUPDATE._serialized_end=14206 + _CHANNELEVENTUPDATE_UPDATETYPE._serialized_start=14049 + _CHANNELEVENTUPDATE_UPDATETYPE._serialized_end=14195 + _WALLETACCOUNTBALANCE._serialized_start=14208 + _WALLETACCOUNTBALANCE._serialized_end=14286 + _WALLETBALANCEREQUEST._serialized_start=14288 + _WALLETBALANCEREQUEST._serialized_end=14310 + _WALLETBALANCERESPONSE._serialized_start=14313 + _WALLETBALANCERESPONSE._serialized_end=14636 + _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._serialized_start=14554 + _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._serialized_end=14636 + _AMOUNT._serialized_start=14638 + _AMOUNT._serialized_end=14673 + _CHANNELBALANCEREQUEST._serialized_start=14675 + _CHANNELBALANCEREQUEST._serialized_end=14698 + _CHANNELBALANCERESPONSE._serialized_start=14701 + _CHANNELBALANCERESPONSE._serialized_end=15057 + _QUERYROUTESREQUEST._serialized_start=15060 + _QUERYROUTESREQUEST._serialized_end=15671 + _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._serialized_start=1693 + _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._serialized_end=1749 + _NODEPAIR._serialized_start=15673 + _NODEPAIR._serialized_end=15709 + _EDGELOCATOR._serialized_start=15711 + _EDGELOCATOR._serialized_end=15775 + _QUERYROUTESRESPONSE._serialized_start=15777 + _QUERYROUTESRESPONSE._serialized_end=15850 + _HOP._serialized_start=15853 + _HOP._serialized_end=16259 + _HOP_CUSTOMRECORDSENTRY._serialized_start=16207 + _HOP_CUSTOMRECORDSENTRY._serialized_end=16259 + _MPPRECORD._serialized_start=16261 + _MPPRECORD._serialized_end=16318 + _AMPRECORD._serialized_start=16320 + _AMPRECORD._serialized_end=16388 + _ROUTE._serialized_start=16391 + _ROUTE._serialized_end=16545 + _NODEINFOREQUEST._serialized_start=16547 + _NODEINFOREQUEST._serialized_end=16607 + _NODEINFO._serialized_start=16610 + _NODEINFO._serialized_end=16740 + _LIGHTNINGNODE._serialized_start=16743 + _LIGHTNINGNODE._serialized_end=17103 + _LIGHTNINGNODE_FEATURESENTRY._serialized_start=7428 + _LIGHTNINGNODE_FEATURESENTRY._serialized_end=7491 + _LIGHTNINGNODE_CUSTOMRECORDSENTRY._serialized_start=16207 + _LIGHTNINGNODE_CUSTOMRECORDSENTRY._serialized_end=16259 + _NODEADDRESS._serialized_start=17105 + _NODEADDRESS._serialized_end=17149 + _ROUTINGPOLICY._serialized_start=17152 + _ROUTINGPOLICY._serialized_end=17443 + _ROUTINGPOLICY_CUSTOMRECORDSENTRY._serialized_start=16207 + _ROUTINGPOLICY_CUSTOMRECORDSENTRY._serialized_end=16259 + _CHANNELEDGE._serialized_start=17446 + _CHANNELEDGE._serialized_end=17789 + _CHANNELEDGE_CUSTOMRECORDSENTRY._serialized_start=16207 + _CHANNELEDGE_CUSTOMRECORDSENTRY._serialized_end=16259 + _CHANNELGRAPHREQUEST._serialized_start=17791 + _CHANNELGRAPHREQUEST._serialized_end=17841 + _CHANNELGRAPH._serialized_start=17843 + _CHANNELGRAPH._serialized_end=17929 + _NODEMETRICSREQUEST._serialized_start=17931 + _NODEMETRICSREQUEST._serialized_end=17989 + _NODEMETRICSRESPONSE._serialized_start=17992 + _NODEMETRICSRESPONSE._serialized_end=18182 + _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._serialized_start=18102 + _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._serialized_end=18182 + _FLOATMETRIC._serialized_start=18184 + _FLOATMETRIC._serialized_end=18238 + _CHANINFOREQUEST._serialized_start=18240 + _CHANINFOREQUEST._serialized_end=18278 + _NETWORKINFOREQUEST._serialized_start=18280 + _NETWORKINFOREQUEST._serialized_end=18300 + _NETWORKINFO._serialized_start=18303 + _NETWORKINFO._serialized_end=18598 + _STOPREQUEST._serialized_start=18600 + _STOPREQUEST._serialized_end=18613 + _STOPRESPONSE._serialized_start=18615 + _STOPRESPONSE._serialized_end=18629 + _GRAPHTOPOLOGYSUBSCRIPTION._serialized_start=18631 + _GRAPHTOPOLOGYSUBSCRIPTION._serialized_end=18658 + _GRAPHTOPOLOGYUPDATE._serialized_start=18661 + _GRAPHTOPOLOGYUPDATE._serialized_end=18824 + _NODEUPDATE._serialized_start=18827 + _NODEUPDATE._serialized_end=19103 + _NODEUPDATE_FEATURESENTRY._serialized_start=7428 + _NODEUPDATE_FEATURESENTRY._serialized_end=7491 + _CHANNELEDGEUPDATE._serialized_start=19106 + _CHANNELEDGEUPDATE._serialized_end=19302 + _CLOSEDCHANNELUPDATE._serialized_start=19304 + _CLOSEDCHANNELUPDATE._serialized_end=19428 + _HOPHINT._serialized_start=19431 + _HOPHINT._serialized_end=19565 + _SETID._serialized_start=19567 + _SETID._serialized_end=19590 + _ROUTEHINT._serialized_start=19592 + _ROUTEHINT._serialized_end=19638 + _AMPINVOICESTATE._serialized_start=19640 + _AMPINVOICESTATE._serialized_end=19763 + _INVOICE._serialized_start=19766 + _INVOICE._serialized_end=20667 + _INVOICE_FEATURESENTRY._serialized_start=7428 + _INVOICE_FEATURESENTRY._serialized_end=7491 + _INVOICE_AMPINVOICESTATEENTRY._serialized_start=20516 + _INVOICE_AMPINVOICESTATEENTRY._serialized_end=20594 + _INVOICE_INVOICESTATE._serialized_start=20596 + _INVOICE_INVOICESTATE._serialized_end=20661 + _INVOICEHTLC._serialized_start=20670 + _INVOICEHTLC._serialized_end=21041 + _INVOICEHTLC_CUSTOMRECORDSENTRY._serialized_start=16207 + _INVOICEHTLC_CUSTOMRECORDSENTRY._serialized_end=16259 + _AMP._serialized_start=21043 + _AMP._serialized_end=21137 + _ADDINVOICERESPONSE._serialized_start=21139 + _ADDINVOICERESPONSE._serialized_end=21241 + _PAYMENTHASH._serialized_start=21243 + _PAYMENTHASH._serialized_end=21296 + _LISTINVOICEREQUEST._serialized_start=21299 + _LISTINVOICEREQUEST._serialized_end=21463 + _LISTINVOICERESPONSE._serialized_start=21465 + _LISTINVOICERESPONSE._serialized_end=21575 + _INVOICESUBSCRIPTION._serialized_start=21577 + _INVOICESUBSCRIPTION._serialized_end=21639 + _PAYMENT._serialized_start=21642 + _PAYMENT._serialized_end=22122 + _PAYMENT_PAYMENTSTATUS._serialized_start=22046 + _PAYMENT_PAYMENTSTATUS._serialized_end=22116 + _HTLCATTEMPT._serialized_start=22125 + _HTLCATTEMPT._serialized_end=22391 + _HTLCATTEMPT_HTLCSTATUS._serialized_start=22337 + _HTLCATTEMPT_HTLCSTATUS._serialized_end=22391 + _LISTPAYMENTSREQUEST._serialized_start=22394 + _LISTPAYMENTSREQUEST._serialized_end=22591 + _LISTPAYMENTSRESPONSE._serialized_start=22594 + _LISTPAYMENTSRESPONSE._serialized_end=22733 + _DELETEPAYMENTREQUEST._serialized_start=22735 + _DELETEPAYMENTREQUEST._serialized_end=22806 + _DELETEALLPAYMENTSREQUEST._serialized_start=22808 + _DELETEALLPAYMENTSREQUEST._serialized_end=22891 + _DELETEPAYMENTRESPONSE._serialized_start=22893 + _DELETEPAYMENTRESPONSE._serialized_end=22916 + _DELETEALLPAYMENTSRESPONSE._serialized_start=22918 + _DELETEALLPAYMENTSRESPONSE._serialized_end=22945 + _ABANDONCHANNELREQUEST._serialized_start=22948 + _ABANDONCHANNELREQUEST._serialized_end=23082 + _ABANDONCHANNELRESPONSE._serialized_start=23084 + _ABANDONCHANNELRESPONSE._serialized_end=23108 + _DEBUGLEVELREQUEST._serialized_start=23110 + _DEBUGLEVELREQUEST._serialized_end=23163 + _DEBUGLEVELRESPONSE._serialized_start=23165 + _DEBUGLEVELRESPONSE._serialized_end=23206 + _PAYREQSTRING._serialized_start=23208 + _PAYREQSTRING._serialized_end=23239 + _PAYREQ._serialized_start=23242 + _PAYREQ._serialized_end=23632 + _PAYREQ_FEATURESENTRY._serialized_start=7428 + _PAYREQ_FEATURESENTRY._serialized_end=7491 + _FEATURE._serialized_start=23634 + _FEATURE._serialized_end=23696 + _FEEREPORTREQUEST._serialized_start=23698 + _FEEREPORTREQUEST._serialized_end=23716 + _CHANNELFEEREPORT._serialized_start=23718 + _CHANNELFEEREPORT._serialized_end=23842 + _FEEREPORTRESPONSE._serialized_start=23845 + _FEEREPORTRESPONSE._serialized_end=23977 + _POLICYUPDATEREQUEST._serialized_start=23980 + _POLICYUPDATEREQUEST._serialized_end=24238 + _FAILEDUPDATE._serialized_start=24240 + _FAILEDUPDATE._serialized_end=24349 + _POLICYUPDATERESPONSE._serialized_start=24351 + _POLICYUPDATERESPONSE._serialized_end=24418 + _FORWARDINGHISTORYREQUEST._serialized_start=24421 + _FORWARDINGHISTORYREQUEST._serialized_end=24558 + _FORWARDINGEVENT._serialized_start=24561 + _FORWARDINGEVENT._serialized_end=24826 + _FORWARDINGHISTORYRESPONSE._serialized_start=24828 + _FORWARDINGHISTORYRESPONSE._serialized_end=24933 + _EXPORTCHANNELBACKUPREQUEST._serialized_start=24935 + _EXPORTCHANNELBACKUPREQUEST._serialized_end=25004 + _CHANNELBACKUP._serialized_start=25006 + _CHANNELBACKUP._serialized_end=25083 + _MULTICHANBACKUP._serialized_start=25085 + _MULTICHANBACKUP._serialized_end=25171 + _CHANBACKUPEXPORTREQUEST._serialized_start=25173 + _CHANBACKUPEXPORTREQUEST._serialized_end=25198 + _CHANBACKUPSNAPSHOT._serialized_start=25200 + _CHANBACKUPSNAPSHOT._serialized_end=25323 + _CHANNELBACKUPS._serialized_start=25325 + _CHANNELBACKUPS._serialized_end=25385 + _RESTORECHANBACKUPREQUEST._serialized_start=25387 + _RESTORECHANBACKUPREQUEST._serialized_end=25499 + _RESTOREBACKUPRESPONSE._serialized_start=25501 + _RESTOREBACKUPRESPONSE._serialized_end=25524 + _CHANNELBACKUPSUBSCRIPTION._serialized_start=25526 + _CHANNELBACKUPSUBSCRIPTION._serialized_end=25553 + _VERIFYCHANBACKUPRESPONSE._serialized_start=25555 + _VERIFYCHANBACKUPRESPONSE._serialized_end=25581 + _MACAROONPERMISSION._serialized_start=25583 + _MACAROONPERMISSION._serialized_end=25635 + _BAKEMACAROONREQUEST._serialized_start=25637 + _BAKEMACAROONREQUEST._serialized_end=25763 + _BAKEMACAROONRESPONSE._serialized_start=25765 + _BAKEMACAROONRESPONSE._serialized_end=25805 + _LISTMACAROONIDSREQUEST._serialized_start=25807 + _LISTMACAROONIDSREQUEST._serialized_end=25831 + _LISTMACAROONIDSRESPONSE._serialized_start=25833 + _LISTMACAROONIDSRESPONSE._serialized_end=25880 + _DELETEMACAROONIDREQUEST._serialized_start=25882 + _DELETEMACAROONIDREQUEST._serialized_end=25928 + _DELETEMACAROONIDRESPONSE._serialized_start=25930 + _DELETEMACAROONIDRESPONSE._serialized_end=25973 + _MACAROONPERMISSIONLIST._serialized_start=25975 + _MACAROONPERMISSIONLIST._serialized_end=26047 + _LISTPERMISSIONSREQUEST._serialized_start=26049 + _LISTPERMISSIONSREQUEST._serialized_end=26073 + _LISTPERMISSIONSRESPONSE._serialized_start=26076 + _LISTPERMISSIONSRESPONSE._serialized_end=26273 + _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._serialized_start=26186 + _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._serialized_end=26273 + _FAILURE._serialized_start=26276 + _FAILURE._serialized_end=27257 + _FAILURE_FAILURECODE._serialized_start=26500 + _FAILURE_FAILURECODE._serialized_end=27251 + _CHANNELUPDATE._serialized_start=27260 + _CHANNELUPDATE._serialized_end=27542 + _MACAROONID._serialized_start=27544 + _MACAROONID._serialized_end=27614 + _OP._serialized_start=27616 + _OP._serialized_end=27653 + _CHECKMACPERMREQUEST._serialized_start=27655 + _CHECKMACPERMREQUEST._serialized_end=27762 + _CHECKMACPERMRESPONSE._serialized_start=27764 + _CHECKMACPERMRESPONSE._serialized_end=27801 + _RPCMIDDLEWAREREQUEST._serialized_start=27804 + _RPCMIDDLEWAREREQUEST._serialized_end=28078 + _STREAMAUTH._serialized_start=28080 + _STREAMAUTH._serialized_end=28117 + _RPCMESSAGE._serialized_start=28119 + _RPCMESSAGE._serialized_end=28233 + _RPCMIDDLEWARERESPONSE._serialized_start=28236 + _RPCMIDDLEWARERESPONSE._serialized_end=28398 + _MIDDLEWAREREGISTRATION._serialized_start=28400 + _MIDDLEWAREREGISTRATION._serialized_end=28510 + _INTERCEPTFEEDBACK._serialized_start=28512 + _INTERCEPTFEEDBACK._serialized_end=28604 + _LIGHTNING._serialized_start=30659 + _LIGHTNING._serialized_end=35635 # @@protoc_insertion_point(module_scope) diff --git a/home.admin/config.scripts/lndlibs/lightning_pb2_grpc.py b/home.admin/config.scripts/lndlibs/lightning_pb2_grpc.py index a89d25775..6ea7d5f0e 100644 --- a/home.admin/config.scripts/lndlibs/lightning_pb2_grpc.py +++ b/home.admin/config.scripts/lndlibs/lightning_pb2_grpc.py @@ -5,7 +5,6 @@ import grpc from . import lightning_pb2 as lightning__pb2 - class LightningStub(object): """ Comments in this file will be directly parsed into the API @@ -358,6 +357,16 @@ class LightningStub(object): request_serializer=lightning__pb2.SubscribeCustomMessagesRequest.SerializeToString, response_deserializer=lightning__pb2.CustomMessage.FromString, ) + self.ListAliases = channel.unary_unary( + '/lnrpc.Lightning/ListAliases', + request_serializer=lightning__pb2.ListAliasesRequest.SerializeToString, + response_deserializer=lightning__pb2.ListAliasesResponse.FromString, + ) + self.LookupHtlcResolution = channel.unary_unary( + '/lnrpc.Lightning/LookupHtlcResolution', + request_serializer=lightning__pb2.LookupHtlcResolutionRequest.SerializeToString, + response_deserializer=lightning__pb2.LookupHtlcResolutionResponse.FromString, + ) class LightningServicer(object): @@ -1093,6 +1102,30 @@ class LightningServicer(object): """lncli: `subscribecustom` SubscribeCustomMessages subscribes to a stream of incoming custom peer messages. + + To include messages with type outside of the custom range (>= 32768) lnd + needs to be compiled with the `dev` build tag, and the message type to + override should be specified in lnd's experimental protocol configuration. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ListAliases(self, request, context): + """lncli: `listaliases` + ListAliases returns the set of all aliases that have ever existed with + their confirmed SCID (if it exists) and/or the base SCID (in the case of + zero conf). + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def LookupHtlcResolution(self, request, context): + """ + LookupHtlcResolution retrieves a final htlc resolution from the database. + If the htlc has no final resolution yet, a NotFound grpc status code is + returned. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') @@ -1426,6 +1459,16 @@ def add_LightningServicer_to_server(servicer, server): request_deserializer=lightning__pb2.SubscribeCustomMessagesRequest.FromString, response_serializer=lightning__pb2.CustomMessage.SerializeToString, ), + 'ListAliases': grpc.unary_unary_rpc_method_handler( + servicer.ListAliases, + request_deserializer=lightning__pb2.ListAliasesRequest.FromString, + response_serializer=lightning__pb2.ListAliasesResponse.SerializeToString, + ), + 'LookupHtlcResolution': grpc.unary_unary_rpc_method_handler( + servicer.LookupHtlcResolution, + request_deserializer=lightning__pb2.LookupHtlcResolutionRequest.FromString, + response_serializer=lightning__pb2.LookupHtlcResolutionResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'lnrpc.Lightning', rpc_method_handlers) @@ -2558,3 +2601,37 @@ class Lightning(object): lightning__pb2.CustomMessage.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def ListAliases(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/ListAliases', + lightning__pb2.ListAliasesRequest.SerializeToString, + lightning__pb2.ListAliasesResponse.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + + @staticmethod + def LookupHtlcResolution(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/LookupHtlcResolution', + lightning__pb2.LookupHtlcResolutionRequest.SerializeToString, + lightning__pb2.LookupHtlcResolutionResponse.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 55bc31ca1..faf3c0892 100644 --- a/home.admin/config.scripts/lndlibs/walletunlocker.proto +++ b/home.admin/config.scripts/lndlibs/walletunlocker.proto @@ -185,6 +185,13 @@ message InitWalletRequest { corresponding private keys and can serve signing RPC requests. */ WatchOnly watch_only = 9; + + /* + macaroon_root_key is an optional 32 byte macaroon root key that can be + provided when initializing the wallet rather than letting lnd generate one + on its own. + */ + bytes macaroon_root_key = 10; } message InitWalletResponse { /* diff --git a/home.admin/config.scripts/lndlibs/walletunlocker_pb2.py b/home.admin/config.scripts/lndlibs/walletunlocker_pb2.py index 031c0fb34..370389481 100644 --- a/home.admin/config.scripts/lndlibs/walletunlocker_pb2.py +++ b/home.admin/config.scripts/lndlibs/walletunlocker_pb2.py @@ -2,6 +2,7 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: walletunlocker.proto """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import message as _message @@ -15,91 +16,10 @@ _sym_db = _symbol_database.Default() from . import lightning_pb2 as lightning__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\"\xd8\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\x12\x19\n\x11macaroon_root_key\x18\n \x01(\x0c\",\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') - - -_GENSEEDREQUEST = DESCRIPTOR.message_types_by_name['GenSeedRequest'] -_GENSEEDRESPONSE = DESCRIPTOR.message_types_by_name['GenSeedResponse'] -_INITWALLETREQUEST = DESCRIPTOR.message_types_by_name['InitWalletRequest'] -_INITWALLETRESPONSE = DESCRIPTOR.message_types_by_name['InitWalletResponse'] -_WATCHONLY = DESCRIPTOR.message_types_by_name['WatchOnly'] -_WATCHONLYACCOUNT = DESCRIPTOR.message_types_by_name['WatchOnlyAccount'] -_UNLOCKWALLETREQUEST = DESCRIPTOR.message_types_by_name['UnlockWalletRequest'] -_UNLOCKWALLETRESPONSE = DESCRIPTOR.message_types_by_name['UnlockWalletResponse'] -_CHANGEPASSWORDREQUEST = DESCRIPTOR.message_types_by_name['ChangePasswordRequest'] -_CHANGEPASSWORDRESPONSE = DESCRIPTOR.message_types_by_name['ChangePasswordResponse'] -GenSeedRequest = _reflection.GeneratedProtocolMessageType('GenSeedRequest', (_message.Message,), { - 'DESCRIPTOR' : _GENSEEDREQUEST, - '__module__' : 'walletunlocker_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GenSeedRequest) - }) -_sym_db.RegisterMessage(GenSeedRequest) - -GenSeedResponse = _reflection.GeneratedProtocolMessageType('GenSeedResponse', (_message.Message,), { - 'DESCRIPTOR' : _GENSEEDRESPONSE, - '__module__' : 'walletunlocker_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.GenSeedResponse) - }) -_sym_db.RegisterMessage(GenSeedResponse) - -InitWalletRequest = _reflection.GeneratedProtocolMessageType('InitWalletRequest', (_message.Message,), { - 'DESCRIPTOR' : _INITWALLETREQUEST, - '__module__' : 'walletunlocker_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.InitWalletRequest) - }) -_sym_db.RegisterMessage(InitWalletRequest) - -InitWalletResponse = _reflection.GeneratedProtocolMessageType('InitWalletResponse', (_message.Message,), { - 'DESCRIPTOR' : _INITWALLETRESPONSE, - '__module__' : 'walletunlocker_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.InitWalletResponse) - }) -_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' - # @@protoc_insertion_point(class_scope:lnrpc.UnlockWalletRequest) - }) -_sym_db.RegisterMessage(UnlockWalletRequest) - -UnlockWalletResponse = _reflection.GeneratedProtocolMessageType('UnlockWalletResponse', (_message.Message,), { - 'DESCRIPTOR' : _UNLOCKWALLETRESPONSE, - '__module__' : 'walletunlocker_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.UnlockWalletResponse) - }) -_sym_db.RegisterMessage(UnlockWalletResponse) - -ChangePasswordRequest = _reflection.GeneratedProtocolMessageType('ChangePasswordRequest', (_message.Message,), { - 'DESCRIPTOR' : _CHANGEPASSWORDREQUEST, - '__module__' : 'walletunlocker_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChangePasswordRequest) - }) -_sym_db.RegisterMessage(ChangePasswordRequest) - -ChangePasswordResponse = _reflection.GeneratedProtocolMessageType('ChangePasswordResponse', (_message.Message,), { - 'DESCRIPTOR' : _CHANGEPASSWORDRESPONSE, - '__module__' : 'walletunlocker_pb2' - # @@protoc_insertion_point(class_scope:lnrpc.ChangePasswordResponse) - }) -_sym_db.RegisterMessage(ChangePasswordResponse) - -_WALLETUNLOCKER = DESCRIPTOR.services_by_name['WalletUnlocker'] +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'walletunlocker_pb2', globals()) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None @@ -109,21 +29,21 @@ if _descriptor._USE_C_DESCRIPTORS == False: _GENSEEDRESPONSE._serialized_start=115 _GENSEEDRESPONSE._serialized_end=187 _INITWALLETREQUEST._serialized_start=190 - _INITWALLETREQUEST._serialized_end=507 - _INITWALLETRESPONSE._serialized_start=509 - _INITWALLETRESPONSE._serialized_end=553 - _WATCHONLY._serialized_start=555 - _WATCHONLY._serialized_end=680 - _WATCHONLYACCOUNT._serialized_start=682 - _WATCHONLYACCOUNT._serialized_end=767 - _UNLOCKWALLETREQUEST._serialized_start=770 - _UNLOCKWALLETREQUEST._serialized_end=917 - _UNLOCKWALLETRESPONSE._serialized_start=919 - _UNLOCKWALLETRESPONSE._serialized_end=941 - _CHANGEPASSWORDREQUEST._serialized_start=943 - _CHANGEPASSWORDREQUEST._serialized_end=1069 - _CHANGEPASSWORDRESPONSE._serialized_start=1071 - _CHANGEPASSWORDRESPONSE._serialized_end=1119 - _WALLETUNLOCKER._serialized_start=1122 - _WALLETUNLOCKER._serialized_end=1415 + _INITWALLETREQUEST._serialized_end=534 + _INITWALLETRESPONSE._serialized_start=536 + _INITWALLETRESPONSE._serialized_end=580 + _WATCHONLY._serialized_start=582 + _WATCHONLY._serialized_end=707 + _WATCHONLYACCOUNT._serialized_start=709 + _WATCHONLYACCOUNT._serialized_end=794 + _UNLOCKWALLETREQUEST._serialized_start=797 + _UNLOCKWALLETREQUEST._serialized_end=944 + _UNLOCKWALLETRESPONSE._serialized_start=946 + _UNLOCKWALLETRESPONSE._serialized_end=968 + _CHANGEPASSWORDREQUEST._serialized_start=970 + _CHANGEPASSWORDREQUEST._serialized_end=1096 + _CHANGEPASSWORDRESPONSE._serialized_start=1098 + _CHANGEPASSWORDRESPONSE._serialized_end=1146 + _WALLETUNLOCKER._serialized_start=1149 + _WALLETUNLOCKER._serialized_end=1442 # @@protoc_insertion_point(module_scope) diff --git a/home.admin/config.scripts/lndlibs/walletunlocker_pb2_grpc.py b/home.admin/config.scripts/lndlibs/walletunlocker_pb2_grpc.py index 145bad7c9..0b3abc525 100644 --- a/home.admin/config.scripts/lndlibs/walletunlocker_pb2_grpc.py +++ b/home.admin/config.scripts/lndlibs/walletunlocker_pb2_grpc.py @@ -5,7 +5,6 @@ import grpc from . import walletunlocker_pb2 as walletunlocker__pb2 - class WalletUnlockerStub(object): """ Comments in this file will be directly parsed into the API