diff --git a/.dockerignore b/.dockerignore
index 51cee13c3..005f64cc4 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -6,6 +6,10 @@ tests
venv
tools
+lnbits/static/css/*
+lnbits/static/bundle.js
+lnbits/static/bundle.css
+
*.md
*.log
diff --git a/.env.example b/.env.example
index 6ef60bc1c..ec980775f 100644
--- a/.env.example
+++ b/.env.example
@@ -34,19 +34,23 @@ LNBITS_SITE_DESCRIPTION="Some description about your service, will display if ti
LNBITS_THEME_OPTIONS="classic, bitcoin, freedom, mint, autumn, monochrome, salvador"
# LNBITS_CUSTOM_LOGO="https://lnbits.com/assets/images/logo/logo.svg"
-# Choose from LNPayWallet, OpenNodeWallet, LntxbotWallet,
-# LndRestWallet, CLightningWallet, LNbitsWallet, SparkWallet, FakeWallet, EclairWallet
+# Choose from LNPayWallet, OpenNodeWallet, LntxbotWallet, ClicheWallet
+# LndRestWallet, CoreLightningWallet, LNbitsWallet, SparkWallet, FakeWallet, EclairWallet
LNBITS_BACKEND_WALLET_CLASS=VoidWallet
# VoidWallet is just a fallback that works without any actual Lightning capabilities,
# just so you can see the UI before dealing with this file.
# Set one of these blocks depending on the wallet kind you chose above:
+
+# ClicheWallet
+CLICHE_ENDPOINT=ws://127.0.0.1:12000
+
# SparkWallet
SPARK_URL=http://localhost:9737/rpc
SPARK_TOKEN=myaccesstoken
-# CLightningWallet
-CLIGHTNING_RPC="/home/bob/.lightning/bitcoin/lightning-rpc"
+# CoreLightningWallet
+CORELIGHTNING_RPC="/home/bob/.lightning/bitcoin/lightning-rpc"
# LnbitsWallet
LNBITS_ENDPOINT=https://legend.lnbits.com
diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml
index 23d7ae3e7..e106ace30 100644
--- a/.github/workflows/formatting.yml
+++ b/.github/workflows/formatting.yml
@@ -7,30 +7,19 @@ on:
branches: [ main ]
jobs:
- black:
+ checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- - run: sudo apt-get install python3-venv
- - run: python3 -m venv venv
- - run: ./venv/bin/pip install black
- - run: make checkblack
- isort:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
+ - uses: abatilo/actions-poetry@v2.1.3
+ - name: Install packages
+ run: poetry install
+ - name: Check black
+ run: make checkblack
+ - name: Check isort
+ run: make checkisort
- uses: actions/setup-node@v3
- - run: sudo apt-get install python3-venv
- - run: python3 -m venv venv
- - run: ./venv/bin/pip install isort
- - run: make checkisort
-
- prettier:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-node@v3
- - run: sudo apt-get install python3-venv
- - run: python3 -m venv venv
- - run: npm install prettier
- - run: ./node_modules/.bin/prettier --check lnbits/static/js/*.js lnbits/core/static/js/*.js lnbits/extensions/*/templates/*/*.html ./lnbits/core/templates/core/*.html lnbits/templates/*.html lnbits/extensions/*/static/js/*.js
+ - name: Check prettier
+ run: |
+ npm install prettier
+ make checkprettier
diff --git a/.github/workflows/migrations.yml b/.github/workflows/migrations.yml
index 08557bc1e..8e72cf624 100644
--- a/.github/workflows/migrations.yml
+++ b/.github/workflows/migrations.yml
@@ -22,22 +22,17 @@ jobs:
--health-retries 5
strategy:
matrix:
- python-version: [3.8]
+ python-version: [3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
+ - uses: abatilo/actions-poetry@v2.1.3
- name: Install dependencies
- env:
- VIRTUAL_ENV: ./venv
- PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
run: |
- python -m venv ${{ env.VIRTUAL_ENV }}
- ./venv/bin/python -m pip install --upgrade pip
- ./venv/bin/pip install -r requirements.txt
- ./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
+ poetry install
sudo apt install unzip
- name: Run migrations
run: |
@@ -45,7 +40,7 @@ jobs:
mkdir -p ./data
export LNBITS_DATA_FOLDER="./data"
unzip tests/data/mock_data.zip -d ./data
- timeout 5s ./venv/bin/uvicorn lnbits.__main__:app --host 0.0.0.0 --port 5001 || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi
+ timeout 5s poetry run lnbits --host 0.0.0.0 --port 5001 || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi
export LNBITS_DATABASE_URL="postgres://postgres:postgres@0.0.0.0:5432/postgres"
- timeout 5s ./venv/bin/uvicorn lnbits.__main__:app --host 0.0.0.0 --port 5001 || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi
- ./venv/bin/python tools/conv.py
+ timeout 5s poetry run lnbits --host 0.0.0.0 --port 5001 || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi
+ poetry run python tools/conv.py
diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml
index 71713d88f..616017316 100644
--- a/.github/workflows/mypy.yml
+++ b/.github/workflows/mypy.yml
@@ -5,9 +5,18 @@ on: [push, pull_request]
jobs:
check:
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [3.9]
steps:
- - uses: actions/checkout@v1
- - uses: jpetrucciani/mypy-check@master
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
with:
- mypy_flags: '--install-types --non-interactive'
- path: 'lnbits'
+ python-version: ${{ matrix.python-version }}
+ - uses: abatilo/actions-poetry@v2.1.3
+ - name: Install dependencies
+ run: |
+ poetry install
+ - name: Run tests
+ run: poetry run mypy
diff --git a/.github/workflows/regtest.yml b/.github/workflows/regtest.yml
index 0d9afdac7..fcd3c164f 100644
--- a/.github/workflows/regtest.yml
+++ b/.github/workflows/regtest.yml
@@ -7,13 +7,14 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.8]
+ python-version: [3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
+ - uses: abatilo/actions-poetry@v2.1.3
- name: Setup Regtest
run: |
git clone https://github.com/lnbits/legend-regtest-enviroment.git docker
@@ -22,15 +23,8 @@ jobs:
./tests
sudo chmod -R a+rwx .
- name: Install dependencies
- env:
- VIRTUAL_ENV: ./venv
- PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
run: |
- python -m venv ${{ env.VIRTUAL_ENV }}
- ./venv/bin/python -m pip install --upgrade pip
- ./venv/bin/pip install -r requirements.txt
- ./venv/bin/pip install pylightning
- ./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
+ poetry install
- name: Run tests
env:
PYTHONUNBUFFERED: 1
@@ -43,7 +37,11 @@ jobs:
run: |
sudo chmod -R a+rwx . && rm -rf ./data && mkdir -p ./data
make test-real-wallet
- CLightningWallet:
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v3
+ with:
+ file: ./coverage.xml
+ LndWallet:
runs-on: ubuntu-latest
strategy:
matrix:
@@ -54,6 +52,7 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
+ - uses: abatilo/actions-poetry@v2.1.3
- name: Setup Regtest
run: |
git clone https://github.com/lnbits/legend-regtest-enviroment.git docker
@@ -62,22 +61,60 @@ jobs:
./tests
sudo chmod -R a+rwx .
- name: Install dependencies
- env:
- VIRTUAL_ENV: ./venv
- PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
run: |
- python -m venv ${{ env.VIRTUAL_ENV }}
- ./venv/bin/python -m pip install --upgrade pip
- ./venv/bin/pip install -r requirements.txt
- ./venv/bin/pip install pylightning
- ./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
+ poetry install
+ poetry add grpcio protobuf
- name: Run tests
env:
PYTHONUNBUFFERED: 1
PORT: 5123
LNBITS_DATA_FOLDER: ./data
- LNBITS_BACKEND_WALLET_CLASS: CLightningWallet
- CLIGHTNING_RPC: ./docker/data/clightning-1/regtest/lightning-rpc
+ LNBITS_BACKEND_WALLET_CLASS: LndWallet
+ LND_GRPC_ENDPOINT: localhost
+ LND_GRPC_PORT: 10009
+ LND_GRPC_CERT: docker/data/lnd-1/tls.cert
+ LND_GRPC_MACAROON: docker/data/lnd-1/data/chain/bitcoin/regtest/admin.macaroon
+ run: |
+ sudo chmod -R a+rwx . && rm -rf ./data && mkdir -p ./data
+ make test-real-wallet
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v3
+ with:
+ file: ./coverage.xml
+ CoreLightningWallet:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [3.9]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - uses: abatilo/actions-poetry@v2.1.3
+ - name: Setup Regtest
+ run: |
+ git clone https://github.com/lnbits/legend-regtest-enviroment.git docker
+ cd docker
+ chmod +x ./tests
+ ./tests
+ sudo chmod -R a+rwx .
+ - name: Install dependencies
+ run: |
+ poetry install
+ poetry add pyln-client
+ - name: Run tests
+ env:
+ PYTHONUNBUFFERED: 1
+ PORT: 5123
+ LNBITS_DATA_FOLDER: ./data
+ LNBITS_BACKEND_WALLET_CLASS: CoreLightningWallet
+ CORELIGHTNING_RPC: ./docker/data/clightning-1/regtest/lightning-rpc
run: |
sudo chmod -R a+rwx . && rm -rf ./data && mkdir -p ./data
make test-real-wallet
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v3
+ with:
+ file: ./coverage.xml
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 15a2388a9..298d7ff04 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.7, 3.8, 3.9]
+ python-version: [3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
@@ -23,9 +23,29 @@ jobs:
./venv/bin/python -m pip install --upgrade pip
./venv/bin/pip install -r requirements.txt
./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
+ - name: Run tests
+ run: make test-venv
+ sqlite:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [3.9]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - uses: abatilo/actions-poetry@v2.1.3
+ - name: Install dependencies
+ env:
+ VIRTUAL_ENV: ./venv
+ PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
+ run: |
+ poetry install
- name: Run tests
run: make test
- venv-postgres:
+ postgres:
runs-on: ubuntu-latest
services:
postgres:
@@ -44,22 +64,17 @@ jobs:
--health-retries 5
strategy:
matrix:
- python-version: [3.8]
+ python-version: [3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
+ - uses: abatilo/actions-poetry@v2.1.3
- name: Install dependencies
- env:
- VIRTUAL_ENV: ./venv
- PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
run: |
- python -m venv ${{ env.VIRTUAL_ENV }}
- ./venv/bin/python -m pip install --upgrade pip
- ./venv/bin/pip install -r requirements.txt
- ./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
+ poetry install
- name: Run tests
env:
LNBITS_DATABASE_URL: postgres://postgres:postgres@0.0.0.0:5432/postgres
@@ -68,68 +83,3 @@ jobs:
uses: codecov/codecov-action@v3
with:
file: ./coverage.xml
- poetry-sqlite:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- python-version: [3.9]
- steps:
- - uses: actions/checkout@v2
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install dependencies
- env:
- VIRTUAL_ENV: ./venv
- PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
- run: |
- python -m venv ${{ env.VIRTUAL_ENV }}
- ./venv/bin/python -m pip install --upgrade pip
- ./venv/bin/pip install -r requirements.txt
- ./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
- - name: Run tests
- run: make test
- poetry-postgres:
- runs-on: ubuntu-latest
- services:
- postgres:
- image: postgres:latest
- env:
- POSTGRES_USER: postgres
- POSTGRES_PASSWORD: postgres
- POSTGRES_DB: postgres
- ports:
- # maps tcp port 5432 on service container to the host
- - 5432:5432
- options: >-
- --health-cmd pg_isready
- --health-interval 10s
- --health-timeout 5s
- --health-retries 5
- strategy:
- matrix:
- python-version: [3.9]
- steps:
- - uses: actions/checkout@v2
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install dependencies
- env:
- VIRTUAL_ENV: ./venv
- PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
- run: |
- python -m venv ${{ env.VIRTUAL_ENV }}
- ./venv/bin/python -m pip install --upgrade pip
- ./venv/bin/pip install -r requirements.txt
- ./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
- - name: Run tests
- env:
- LNBITS_DATABASE_URL: postgres://postgres:postgres@0.0.0.0:5432/postgres
- run: make test
- - name: Upload coverage to Codecov
- uses: codecov/codecov-action@v3
- with:
- file: ./coverage.xml
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index f9eb1dd1c..c4fcb9596 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,45 +1,12 @@
-# Build image
-FROM python:3.7-slim as builder
-
-# Setup virtualenv
-ENV VIRTUAL_ENV=/opt/venv
-RUN python -m venv $VIRTUAL_ENV
-ENV PATH="$VIRTUAL_ENV/bin:$PATH"
-
-# Install build deps
+FROM python:3.9-slim
RUN apt-get update
-RUN apt-get install -y --no-install-recommends build-essential pkg-config libpq-dev
-RUN python -m pip install --upgrade pip
-RUN pip install wheel
-
-# Install runtime deps
-COPY requirements.txt /tmp/requirements.txt
-RUN pip install -r /tmp/requirements.txt
-
-# Install c-lightning specific deps
-RUN pip install pylightning
-
-# Install LND specific deps
-RUN pip install lndgrpc
-
-# Production image
-FROM python:3.7-slim as lnbits
-
-# Run as non-root
-USER 1000:1000
-
-# Copy over virtualenv
-ENV VIRTUAL_ENV="/opt/venv"
-COPY --from=builder --chown=1000:1000 $VIRTUAL_ENV $VIRTUAL_ENV
-ENV PATH="$VIRTUAL_ENV/bin:$PATH"
-
-# Copy in app source
+RUN apt-get install -y curl
+RUN curl -sSL https://install.python-poetry.org | python3 -
+ENV PATH="/root/.local/bin:$PATH"
WORKDIR /app
-COPY --chown=1000:1000 lnbits /app/lnbits
-
-ENV LNBITS_PORT="5000"
-ENV LNBITS_HOST="0.0.0.0"
-
+COPY . .
+RUN poetry config virtualenvs.create false
+RUN poetry install --no-dev --no-root
+RUN poetry run python build.py
EXPOSE 5000
-
-CMD ["sh", "-c", "uvicorn lnbits.__main__:app --port $LNBITS_PORT --host $LNBITS_HOST"]
+CMD ["poetry", "run", "lnbits", "--port", "5000", "--host", "0.0.0.0"]
diff --git a/Makefile b/Makefile
index 2873ae774..d91d0421d 100644
--- a/Makefile
+++ b/Makefile
@@ -4,58 +4,47 @@ all: format check requirements.txt
format: prettier isort black
-check: mypy checkprettier checkblack
+check: mypy checkprettier checkisort checkblack
prettier: $(shell find lnbits -name "*.js" -name ".html")
- ./node_modules/.bin/prettier --write lnbits/static/js/*.js lnbits/core/static/js/*.js lnbits/extensions/*/templates/*/*.html ./lnbits/core/templates/core/*.html lnbits/templates/*.html lnbits/extensions/*/static/js/*.js
+ ./node_modules/.bin/prettier --write lnbits/static/js/*.js lnbits/core/static/js/*.js lnbits/extensions/*/templates/*/*.html ./lnbits/core/templates/core/*.html lnbits/templates/*.html lnbits/extensions/*/static/js/*.js lnbits/extensions/*/static/components/*/*.js lnbits/extensions/*/static/components/*/*.html
-black: $(shell find lnbits -name "*.py")
- ./venv/bin/black lnbits
+black:
+ poetry run black .
-mypy: $(shell find lnbits -name "*.py")
- ./venv/bin/mypy lnbits
- ./venv/bin/mypy lnbits/core
- ./venv/bin/mypy lnbits/extensions/*
+mypy:
+ poetry run mypy
-isort: $(shell find lnbits -name "*.py")
- ./venv/bin/isort --profile black lnbits
+isort:
+ poetry run isort .
checkprettier: $(shell find lnbits -name "*.js" -name ".html")
- ./node_modules/.bin/prettier --check lnbits/static/js/*.js lnbits/core/static/js/*.js lnbits/extensions/*/templates/*/*.html ./lnbits/core/templates/core/*.html lnbits/templates/*.html lnbits/extensions/*/static/js/*.js
+ ./node_modules/.bin/prettier --check lnbits/static/js/*.js lnbits/core/static/js/*.js lnbits/extensions/*/templates/*/*.html ./lnbits/core/templates/core/*.html lnbits/templates/*.html lnbits/extensions/*/static/js/*.js lnbits/extensions/*/static/components/*/*.js lnbits/extensions/*/static/components/*/*.html
-checkblack: $(shell find lnbits -name "*.py")
- ./venv/bin/black --check lnbits
+checkblack:
+ poetry run black --check .
-checkisort: $(shell find lnbits -name "*.py")
- ./venv/bin/isort --profile black --check-only lnbits
-
-Pipfile.lock: Pipfile
- ./venv/bin/pipenv lock
-
-requirements.txt: Pipfile.lock
- cat Pipfile.lock | jq -r '.default | map_values(.version) | to_entries | map("\(.key)\(.value)") | join("\n")' > requirements.txt
+checkisort:
+ poetry run isort --check-only .
test:
- mkdir -p ./tests/data
LNBITS_BACKEND_WALLET_CLASS="FakeWallet" \
FAKE_WALLET_SECRET="ToTheMoon1" \
LNBITS_DATA_FOLDER="./tests/data" \
PYTHONUNBUFFERED=1 \
- ./venv/bin/pytest --durations=1 -s --cov=lnbits --cov-report=xml tests
+ poetry run pytest
test-real-wallet:
- mkdir -p ./tests/data
LNBITS_DATA_FOLDER="./tests/data" \
PYTHONUNBUFFERED=1 \
- ./venv/bin/pytest --durations=1 -s --cov=lnbits --cov-report=xml tests
+ poetry run pytest
-test-pipenv:
- mkdir -p ./tests/data
+test-venv:
LNBITS_BACKEND_WALLET_CLASS="FakeWallet" \
FAKE_WALLET_SECRET="ToTheMoon1" \
LNBITS_DATA_FOLDER="./tests/data" \
PYTHONUNBUFFERED=1 \
- pipenv run pytest --durations=1 -s --cov=lnbits --cov-report=xml tests
+ ./venv/bin/pytest --durations=1 -s --cov=lnbits --cov-report=xml tests
bak:
# LNBITS_DATABASE_URL=postgres://postgres:postgres@0.0.0.0:5432/postgres
diff --git a/README.md b/README.md
index 5c6b702a9..a22c857c5 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ LNbits is a very simple Python server that sits on top of any funding source, an
LNbits can run on top of any lightning-network funding source, currently there is support for LND, c-lightning, Spark, LNpay, OpenNode, lntxbot, with more being added regularly.
-See [lnbits.org](https://lnbits.org) for more detailed documentation.
+See [legend.lnbits.org](https://legend.lnbits.org) for more detailed documentation.
Checkout the LNbits [YouTube](https://www.youtube.com/playlist?list=PLPj3KCksGbSYG0ciIQUWJru1dWstPHshe) video series.
@@ -54,7 +54,7 @@ LNURL has a fallback scheme, so if scanned by a regular QR code reader it can de

Using **lnbits.com/?lightning="LNURL-withdraw"** will trigger a withdraw that builds an LNbits wallet.
-Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will stilll be able to access the funds.
+Example use would be an ATM, which utilises LNURL, if the user scans the QR with a regular QR code scanner app, they will still be able to access the funds.

@@ -70,7 +70,7 @@ Wallets can be easily generated and given out to people at events (one click mul
If you like this project and might even use or extend it, why not [send some tip love](https://legend.lnbits.com/paywall/GAqKguK5S8f6w5VNjS9DfK)!
-[docs]: https://lnbits.org/
+[docs]: https://legend.lnbits.org/
[docs-badge]: https://img.shields.io/badge/docs-lnbits.org-673ab7.svg
[github-mypy]: https://github.com/lnbits/lnbits/actions?query=workflow%3Amypy
[github-mypy-badge]: https://github.com/lnbits/lnbits/workflows/mypy/badge.svg
diff --git a/build.py b/build.py
index 5cc8b7de1..2bc3e50cb 100644
--- a/build.py
+++ b/build.py
@@ -1,13 +1,14 @@
-import warnings
-import subprocess
import glob
import os
+import subprocess
+import warnings
from os import path
-from typing import Any, List, NamedTuple, Optional
from pathlib import Path
+from typing import Any, List, NamedTuple, Optional
LNBITS_PATH = path.dirname(path.realpath(__file__)) + "/lnbits"
+
def get_js_vendored(prefer_minified: bool = False) -> List[str]:
paths = get_vendored(".js", prefer_minified)
@@ -71,6 +72,7 @@ def get_vendored(ext: str, prefer_minified: bool = False) -> List[str]:
def url_for_vendored(abspath: str) -> str:
return "/" + os.path.relpath(abspath, LNBITS_PATH)
+
def transpile_scss():
with warnings.catch_warnings():
warnings.simplefilter("ignore")
@@ -80,6 +82,7 @@ def transpile_scss():
with open(os.path.join(LNBITS_PATH, "static/css/base.css"), "w") as css:
css.write(compile_string(scss.read()))
+
def bundle_vendored():
for getfiles, outputpath in [
(get_js_vendored, os.path.join(LNBITS_PATH, "static/bundle.js")),
@@ -96,15 +99,7 @@ def bundle_vendored():
def build():
transpile_scss()
bundle_vendored()
-# root = Path("lnbits/static/foo")
-# root.mkdir(parents=True)
-# root.joinpath("example.css").write_text("")
+
if __name__ == "__main__":
- build()
-
-#def build(setup_kwargs):
-# """Build """
-# transpile_scss()
-# bundle_vendored()
-# subprocess.run(["ls", "-la", "./lnbits/static"])
+ build()
diff --git a/docs/CNAME b/docs/CNAME
index 1b08f7544..9981b1103 100644
--- a/docs/CNAME
+++ b/docs/CNAME
@@ -1 +1 @@
-lnbits.org
\ No newline at end of file
+legend.lnbits.org
\ No newline at end of file
diff --git a/docs/_config.yml b/docs/_config.yml
index b4e4adbee..74e65187e 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -3,7 +3,7 @@ title: "LNbits docs"
remote_theme: pmarsceill/just-the-docs
logo: "/logos/lnbits-full.png"
search_enabled: true
-url: https://lnbits.org
+url: https://legend.lnbits.org
aux_links:
"LNbits on GitHub":
- "//github.com/lnbits/lnbits"
diff --git a/docs/devs/api.md b/docs/devs/api.md
index a0938d626..a8217b9c6 100644
--- a/docs/devs/api.md
+++ b/docs/devs/api.md
@@ -9,4 +9,4 @@ nav_order: 3
API reference
=============
-Coming soon...
+[Swagger Docs](https://legend.lnbits.org/devs/swagger.html)
diff --git a/docs/devs/development.md b/docs/devs/development.md
index f53b94bce..74a664055 100644
--- a/docs/devs/development.md
+++ b/docs/devs/development.md
@@ -17,10 +17,26 @@ Tests
This project has unit tests that help prevent regressions. Before you can run the tests, you must install a few dependencies:
```bash
-./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
+poetry install
+npm i
```
Then to run the tests:
```bash
make test
```
+
+Run formatting:
+```bash
+make format
+```
+
+Run mypy checks:
+```bash
+poetry run mypy
+```
+
+Run everything:
+```bash
+make all
+```
diff --git a/docs/devs/extensions.md b/docs/devs/extensions.md
index 8c9a30a40..0ceb9cb3f 100644
--- a/docs/devs/extensions.md
+++ b/docs/devs/extensions.md
@@ -28,17 +28,24 @@ Going over the example extension's structure:
Adding new dependencies
-----------------------
-If for some reason your extensions needs a new python package to work, you can add a new package using Pipenv:
+If for some reason your extensions needs a new python package to work, you can add a new package using `venv`, or `poerty`:
```sh
-$ pipenv install new_package_name
+$ poetry add
+# or
+$ ./venv/bin/pip install
```
-This will create a new entry in the `Pipenv` file.
**But we need an extra step to make sure LNbits doesn't break in production.**
-All tests and deployments should run against the `requirements.txt` file so every time a new package is added
-it is necessary to run the Pipenv `lock` command and manually update the requirements file:
+Dependencies need to be added to `pyproject.toml` and `requirements.txt`, then tested by running on `venv` and `poetry`.
+`nix` compatability can be tested with `nix build .#checks.x86_64-linux.vmTest`.
-```sh
-$ pipenv lock -r
-```
+
+SQLite to PostgreSQL migration
+-----------------------
+
+LNbits currently supports SQLite and PostgreSQL databases. There is a migration script `tools/conv.py` that helps users migrate from SQLite to PostgreSQL. This script also copies all extension databases to the new backend.
+
+### Adding mock data to `mock_data.zip`
+
+`mock_data.zip` contains a few lines of sample SQLite data and is used in automated GitHub test to see whether your migration in `conv.py` works. Run your extension and save a few lines of data into a SQLite `your_extension.sqlite3` file. Unzip `tests/data/mock_data.zip`, add `your_extension.sqlite3` and zip it again. Add the updated `mock_data.zip` to your PR.
\ No newline at end of file
diff --git a/docs/devs/installation.md b/docs/devs/installation.md
deleted file mode 100644
index b807ce34e..000000000
--- a/docs/devs/installation.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: default
-parent: For developers
-title: Installation
-nav_order: 1
----
-
-# Installation
-
-This guide has been moved to the [installation guide](../guide/installation.md).
-To install the developer packages for running tests etc before pr'ing, use `./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock black mypy isort`.
-
-## Notes:
-
-* We recommend using Caddy for a reverse-proxy if you want to serve your install through a domain, alternatively you can use [ngrok](https://ngrok.com/).
-* Screen works well if you want LNbits to continue running when you close your terminal session.
diff --git a/docs/devs/swagger.html b/docs/devs/swagger.html
new file mode 100644
index 000000000..c787eb2b9
--- /dev/null
+++ b/docs/devs/swagger.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+ My New API
+
+
+
+
+
+
diff --git a/docs/guide/installation.md b/docs/guide/installation.md
index 0232346fb..d9b8d5d27 100644
--- a/docs/guide/installation.md
+++ b/docs/guide/installation.md
@@ -4,8 +4,6 @@ title: Basic installation
nav_order: 2
---
-
-
# Basic installation
You can choose between four package managers, `poetry`, `nix` and `venv`.
@@ -18,16 +16,26 @@ By default, LNbits will use SQLite as its database. You can also use PostgreSQL
git clone https://github.com/lnbits/lnbits-legend.git
cd lnbits-legend/
+# for making sure python 3.9 is installed, skip if installed
+sudo apt update
+sudo apt install software-properties-common
+sudo add-apt-repository ppa:deadsnakes/ppa
+sudo apt install python3.9
+
curl -sSL https://install.python-poetry.org | python3 -
-poetry install
+export PATH="/home/ubuntu/.local/bin:$PATH" # or whatever is suggested in the poetry install notes printed to terminal
+poetry env use python3.9
+poetry install --no-dev
-# You may need to install python 3.9, update your python following this guide https://linuxize.com/post/how-to-install-python-3-9-on-ubuntu-20-04/
+mkdir data
+cp .env.example .env
+sudo nano .env # set funding source
- mkdir data && cp .env.example .env
-```
+
+```
#### Running the server
-
+
```sh
poetry run lnbits
# To change port/host pass 'poetry run lnbits --port 9000 --host 0.0.0.0'
@@ -41,7 +49,7 @@ cd lnbits-legend/
# Modern debian distros usually include Nix, however you can install with:
# 'sh <(curl -L https://nixos.org/nix/install) --daemon', or use setup here https://nixos.org/download.html#nix-verify-installation
-nix build .#lnbits
+nix build .#lnbits
mkdir data
```
@@ -74,20 +82,31 @@ mkdir data && cp .env.example .env
./venv/bin/uvicorn lnbits.__main__:app --port 5000
```
-If you want to host LNbits on the internet, run with the option `--host 0.0.0.0`.
+If you want to host LNbits on the internet, run with the option `--host 0.0.0.0`.
+
+## Option 4: Docker
+
+```sh
+git clone https://github.com/lnbits/lnbits-legend.git
+cd lnbits-legend
+docker build -t lnbits-legend .
+cp .env.example .env
+mkdir data
+docker run --detach --publish 5000:5000 --name lnbits-legend --volume ${PWD}/.env:/app/.env --volume ${PWD}/data/:/app/data lnbits-legend
+```
### Troubleshooting
-Problems installing? These commands have helped us install LNbits.
+Problems installing? These commands have helped us install LNbits.
```sh
sudo apt install pkg-config libffi-dev libpq-dev
# if the secp256k1 build fails:
# if you used venv
-./venv/bin/pip install setuptools wheel
+./venv/bin/pip install setuptools wheel
# if you used poetry
-poetry add setuptools wheel
+poetry add setuptools wheel
# build essentials for debian/ubuntu
sudo apt install python3-dev gcc build-essential
```
@@ -122,13 +141,13 @@ LNBITS_DATABASE_URL="postgres://postgres:postgres@localhost/lnbits"
# Using LNbits
-Now you can visit your LNbits at http://localhost:5000/.
+Now you can visit your LNbits at http://localhost:5000/.
-Now modify the `.env` file with any settings you prefer and add a proper [funding source](./wallets.md) by modifying the value of `LNBITS_BACKEND_WALLET_CLASS` and providing the extra information and credentials related to the chosen funding source.
+Now modify the `.env` file with any settings you prefer and add a proper [funding source](./wallets.md) by modifying the value of `LNBITS_BACKEND_WALLET_CLASS` and providing the extra information and credentials related to the chosen funding source.
Then you can restart it and it will be using the new settings.
-You might also need to install additional packages or perform additional setup steps, depending on the chosen backend. See [the short guide](./wallets.md) on each different funding source.
+You might also need to install additional packages or perform additional setup steps, depending on the chosen backend. See [the short guide](./wallets.md) on each different funding source.
Take a look at [Polar](https://lightningpolar.com/) for an excellent way of spinning up a Lightning Network dev environment.
@@ -170,21 +189,21 @@ Systemd is great for taking care of your LNbits instance. It will start it on bo
Description=LNbits
# you can uncomment these lines if you know what you're doing
# it will make sure that lnbits starts after lnd (replace with your own backend service)
-#Wants=lnd.service
-#After=lnd.service
+#Wants=lnd.service
+#After=lnd.service
[Service]
# replace with the absolute path of your lnbits installation
-WorkingDirectory=/home/bitcoin/lnbits
+WorkingDirectory=/home/bitcoin/lnbits
# same here
-ExecStart=/home/bitcoin/lnbits/venv/bin/uvicorn lnbits.__main__:app --port 5000
+ExecStart=/home/bitcoin/lnbits/venv/bin/uvicorn lnbits.__main__:app --port 5000
# replace with the user that you're running lnbits on
-User=bitcoin
+User=bitcoin
Restart=always
TimeoutSec=120
RestartSec=30
# this makes sure that you receive logs in real time
-Environment=PYTHONUNBUFFERED=1
+Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
@@ -198,12 +217,12 @@ sudo systemctl start lnbits.service
```
## Using https without reverse proxy
-The most common way of using LNbits via https is to use a reverse proxy such as Caddy, nginx, or ngriok. However, you can also run LNbits via https without additional software. This is useful for development purposes or if you want to use LNbits in your local network.
+The most common way of using LNbits via https is to use a reverse proxy such as Caddy, nginx, or ngriok. However, you can also run LNbits via https without additional software. This is useful for development purposes or if you want to use LNbits in your local network.
We have to create a self-signed certificate using `mkcert`. Note that this certiciate is not "trusted" by most browsers but that's fine (since you know that you have created it) and encryption is always better than clear text.
#### Install mkcert
-You can find the install instructions for `mkcert` [here](https://github.com/FiloSottile/mkcert).
+You can find the install instructions for `mkcert` [here](https://github.com/FiloSottile/mkcert).
Install mkcert on Ubuntu:
```sh
@@ -213,16 +232,22 @@ chmod +x mkcert-v*-linux-amd64
sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert
```
#### Create certificate
-To create a certificate, first `cd` into your lnbits folder and execute the following command ([more info](https://kifarunix.com/how-to-create-self-signed-ssl-certificate-with-mkcert-on-ubuntu-18-04/))
+To create a certificate, first `cd` into your LNbits folder and execute the following command on Linux:
+```sh
+openssl req -new -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out cert.pem -keyout key.pem
+```
+This will create two new files (`key.pem` and `cert.pem `).
+
+Alternatively, you can use mkcert ([more info](https://kifarunix.com/how-to-create-self-signed-ssl-certificate-with-mkcert-on-ubuntu-18-04/)):
```sh
# add your local IP (192.x.x.x) as well if you want to use it in your local network
-mkcert localhost 127.0.0.1 ::1
+mkcert localhost 127.0.0.1 ::1
```
-This will create two new files (`localhost-key.pem` and `localhost.pem `) which you can then pass to uvicorn when you start LNbits:
+You can then pass the certificate files to uvicorn when you start LNbits:
```sh
-./venv/bin/uvicorn lnbits.__main__:app --host 0.0.0.0 --port 5000 --ssl-keyfile ./localhost-key.pem --ssl-certfile ./localhost.pem
+./venv/bin/uvicorn lnbits.__main__:app --host 0.0.0.0 --port 5000 --ssl-keyfile ./key.pem --ssl-certfile ./cert.pem
```
@@ -235,9 +260,9 @@ If you want to run LNbits on your Umbrel but want it to be reached through clear
To install using docker you first need to build the docker image as:
```
-git clone https://github.com/lnbits/lnbits.git
-cd lnbits/ # ${PWD} referred as
-docker build -t lnbits .
+git clone https://github.com/lnbits/lnbits-legend.git
+cd lnbits-legend
+docker build -t lnbits-legend .
```
You can launch the docker in a different directory, but make sure to copy `.env.example` from lnbits there
@@ -248,17 +273,15 @@ cp /.env.example .env
and change the configuration in `.env` as required.
-Then create the data directory for the user ID 1000, which is the user that runs the lnbits within the docker container.
-
+Then create the data directory
```
mkdir data
-sudo chown 1000:1000 ./data/
```
Then the image can be run as:
```
-docker run --detach --publish 5000:5000 --name lnbits --volume ${PWD}/.env:/app/.env --volume ${PWD}/data/:/app/data lnbits
+docker run --detach --publish 5000:5000 --name lnbits-legend -e "LNBITS_BACKEND_WALLET_CLASS='FakeWallet'" --volume ${PWD}/.env:/app/.env --volume ${PWD}/data/:/app/data lnbits-legend
```
Finally you can access your lnbits on your machine at port 5000.
diff --git a/docs/guide/wallets.md b/docs/guide/wallets.md
index dfea66aa2..592c29ef1 100644
--- a/docs/guide/wallets.md
+++ b/docs/guide/wallets.md
@@ -8,18 +8,17 @@ nav_order: 3
Backend wallets
===============
-LNbits can run on top of many lightning-network funding sources. Currently there is support for
-CLightning, LND, LNbits, LNPay, lntxbot and OpenNode, with more being added regularily.
+LNbits can run on top of many lightning-network funding sources. Currently there is support for CoreLightning, LND, LNbits, LNPay, lntxbot and OpenNode, with more being added regularly.
A backend wallet can be configured using the following LNbits environment variables:
-### CLightning
+### CoreLightning
Using this wallet requires the installation of the `pylightning` Python package.
-- `LNBITS_BACKEND_WALLET_CLASS`: **CLightningWallet**
-- `CLIGHTNING_RPC`: /file/path/lightning-rpc
+- `LNBITS_BACKEND_WALLET_CLASS`: **CoreLightningWallet**
+- `CORELIGHTNING_RPC`: /file/path/lightning-rpc
### Spark (c-lightning)
@@ -27,6 +26,17 @@ Using this wallet requires the installation of the `pylightning` Python package.
- `SPARK_URL`: http://10.147.17.230:9737/rpc
- `SPARK_TOKEN`: secret_access_key
+### LND (REST)
+
+- `LNBITS_BACKEND_WALLET_CLASS`: **LndRestWallet**
+- `LND_REST_ENDPOINT`: http://10.147.17.230:8080/
+- `LND_REST_CERT`: /file/path/tls.cert
+- `LND_REST_MACAROON`: /file/path/admin.macaroon or Bech64/Hex
+
+or
+
+- `LND_REST_MACAROON_ENCRYPTED`: eNcRyPtEdMaCaRoOn
+
### LND (gRPC)
Using this wallet requires the installation of the `grpcio` and `protobuf` Python packages.
@@ -43,17 +53,6 @@ You can also use an AES-encrypted macaroon (more info) instead by using
To encrypt your macaroon, run `./venv/bin/python lnbits/wallets/macaroon/macaroon.py`.
-### LND (REST)
-
-- `LNBITS_BACKEND_WALLET_CLASS`: **LndRestWallet**
-- `LND_REST_ENDPOINT`: http://10.147.17.230:8080/
-- `LND_REST_CERT`: /file/path/tls.cert
-- `LND_REST_MACAROON`: /file/path/admin.macaroon or Bech64/Hex
-
-or
-
-- `LND_REST_MACAROON_ENCRYPTED`: eNcRyPtEdMaCaRoOn
-
### LNbits
- `LNBITS_BACKEND_WALLET_CLASS`: **LNbitsWallet**
diff --git a/lnbits/core/crud.py b/lnbits/core/crud.py
index db802d7bb..f150270a8 100644
--- a/lnbits/core/crud.py
+++ b/lnbits/core/crud.py
@@ -4,6 +4,8 @@ from typing import Any, Dict, List, Optional
from urllib.parse import urlparse
from uuid import uuid4
+from loguru import logger
+
from lnbits import bolt11
from lnbits.db import COCKROACH, POSTGRES, Connection
from lnbits.settings import DEFAULT_WALLET_NAME, LNBITS_ADMIN_USERS
@@ -334,7 +336,7 @@ async def delete_expired_invoices(
expiration_date = datetime.datetime.fromtimestamp(invoice.date + invoice.expiry)
if expiration_date > datetime.datetime.utcnow():
continue
-
+ logger.debug(f"Deleting expired invoice: {invoice.payment_hash}")
await (conn or db).execute(
"""
DELETE FROM apipayments
diff --git a/lnbits/core/models.py b/lnbits/core/models.py
index 0f7eba737..c019d941d 100644
--- a/lnbits/core/models.py
+++ b/lnbits/core/models.py
@@ -141,19 +141,25 @@ class Payment(BaseModel):
if self.is_uncheckable:
return
+ logger.debug(
+ f"Checking {'outgoing' if self.is_out else 'incoming'} pending payment {self.checking_id}"
+ )
+
if self.is_out:
status = await WALLET.get_payment_status(self.checking_id)
else:
status = await WALLET.get_invoice_status(self.checking_id)
+ logger.debug(f"Status: {status}")
+
if self.is_out and status.failed:
logger.info(
- f" - deleting outgoing failed payment {self.checking_id}: {status}"
+ f"Deleting outgoing failed payment {self.checking_id}: {status}"
)
await self.delete()
elif not status.pending:
logger.info(
- f" - marking '{'in' if self.is_in else 'out'}' {self.checking_id} as not pending anymore: {status}"
+ f"Marking '{'in' if self.is_in else 'out'}' {self.checking_id} as not pending anymore: {status}"
)
await self.set_pending(status.pending)
diff --git a/lnbits/core/services.py b/lnbits/core/services.py
index b9aec8997..678c89e30 100644
--- a/lnbits/core/services.py
+++ b/lnbits/core/services.py
@@ -182,7 +182,7 @@ async def pay_invoice(
payment_request, fee_reserve_msat
)
logger.debug(f"backend: pay_invoice finished {temp_id}")
- if payment.checking_id:
+ if payment.ok and payment.checking_id:
logger.debug(f"creating final payment {payment.checking_id}")
async with db.connect() as conn:
await create_payment(
@@ -196,7 +196,7 @@ async def pay_invoice(
logger.debug(f"deleting temporary payment {temp_id}")
await delete_payment(temp_id, conn=conn)
else:
- logger.debug(f"backend payment failed, no checking_id {temp_id}")
+ logger.debug(f"backend payment failed")
async with db.connect() as conn:
logger.debug(f"deleting temporary payment {temp_id}")
await delete_payment(temp_id, conn=conn)
@@ -337,13 +337,16 @@ async def perform_lnurlauth(
)
-async def check_invoice_status(
+async def check_transaction_status(
wallet_id: str, payment_hash: str, conn: Optional[Connection] = None
) -> PaymentStatus:
payment = await get_wallet_payment(wallet_id, payment_hash, conn=conn)
if not payment:
return PaymentStatus(None)
- status = await WALLET.get_invoice_status(payment.checking_id)
+ if payment.is_out:
+ status = await WALLET.get_payment_status(payment.checking_id)
+ else:
+ status = await WALLET.get_invoice_status(payment.checking_id)
if not payment.pending:
return status
if payment.is_out and status.failed:
diff --git a/lnbits/core/templates/core/wallet.html b/lnbits/core/templates/core/wallet.html
index acfcf7004..78f33f3a0 100644
--- a/lnbits/core/templates/core/wallet.html
+++ b/lnbits/core/templates/core/wallet.html
@@ -689,7 +689,7 @@
diff --git a/lnbits/core/views/api.py b/lnbits/core/views/api.py
index e54e30fac..ac61e52fd 100644
--- a/lnbits/core/views/api.py
+++ b/lnbits/core/views/api.py
@@ -48,7 +48,7 @@ from ..crud import (
from ..services import (
InvoiceFailure,
PaymentFailure,
- check_invoice_status,
+ check_transaction_status,
create_invoice,
pay_invoice,
perform_lnurlauth,
@@ -123,7 +123,7 @@ async def api_payments(
offset=offset,
)
for payment in pendingPayments:
- await check_invoice_status(
+ await check_transaction_status(
wallet_id=payment.wallet_id, payment_hash=payment.payment_hash
)
return await get_payments(
@@ -184,10 +184,7 @@ async def api_payments_create_invoice(data: CreateInvoiceData, wallet: Wallet):
lnurl_response: Union[None, bool, str] = None
if data.lnurl_callback:
- if "lnurl_balance_check" in data:
- assert (
- data.lnurl_balance_check is not None
- ), "lnurl_balance_check is required"
+ if data.lnurl_balance_check is not None:
await save_balance_check(wallet.id, data.lnurl_balance_check)
async with httpx.AsyncClient() as client:
@@ -245,8 +242,6 @@ async def api_payments_pay_invoice(bolt11: str, wallet: Wallet):
@core_app.post(
"/api/v1/payments",
- # deprecated=True,
- # description="DEPRECATED. Use /api/v2/TBD and /api/v2/TBD instead",
status_code=HTTPStatus.CREATED,
)
async def api_payments_create(
@@ -407,7 +402,7 @@ async def api_payment(payment_hash, X_Api_Key: Optional[str] = Header(None)):
raise HTTPException(
status_code=HTTPStatus.NOT_FOUND, detail="Payment does not exist."
)
- await check_invoice_status(payment.wallet_id, payment_hash)
+ await check_transaction_status(payment.wallet_id, payment_hash)
payment = await get_standalone_payment(
payment_hash, wallet_id=wallet.id if wallet else None
)
diff --git a/lnbits/core/views/generic.py b/lnbits/core/views/generic.py
index 21572b285..31a7b0300 100644
--- a/lnbits/core/views/generic.py
+++ b/lnbits/core/views/generic.py
@@ -148,7 +148,9 @@ async def wallet(
status_code=status.HTTP_307_TEMPORARY_REDIRECT,
)
- logger.debug(f"Access wallet {wallet_name}{'of user '+ user.id if user else ''}")
+ logger.debug(
+ f"Access {'user '+ user.id + ' ' if user else ''} {'wallet ' + wallet_name if wallet_name else ''}"
+ )
userwallet = user.get_wallet(wallet_id) # type: ignore
if not userwallet:
return template_renderer().TemplateResponse(
diff --git a/lnbits/extensions/copilot/lnurl.py b/lnbits/extensions/copilot/lnurl.py
index 69777c9fb..2fc3e1768 100644
--- a/lnbits/extensions/copilot/lnurl.py
+++ b/lnbits/extensions/copilot/lnurl.py
@@ -73,11 +73,9 @@ async def lnurl_callback(
wallet_id=cp.wallet,
amount=int(amount_received / 1000),
memo=cp.lnurl_title,
- description_hash=hashlib.sha256(
- (
- LnurlPayMetadata(json.dumps([["text/plain", str(cp.lnurl_title)]]))
- ).encode("utf-8")
- ).digest(),
+ description_hash=(
+ LnurlPayMetadata(json.dumps([["text/plain", str(cp.lnurl_title)]]))
+ ).encode("utf-8"),
extra={"tag": "copilot", "copilotid": cp.id, "comment": comment},
)
payResponse = {"pr": payment_request, "routes": []}
diff --git a/lnbits/extensions/livestream/lnurl.py b/lnbits/extensions/livestream/lnurl.py
index 861955de3..72cc1dbbe 100644
--- a/lnbits/extensions/livestream/lnurl.py
+++ b/lnbits/extensions/livestream/lnurl.py
@@ -90,9 +90,7 @@ async def lnurl_callback(
wallet_id=ls.wallet,
amount=int(amount_received / 1000),
memo=await track.fullname(),
- description_hash=hashlib.sha256(
- (await track.lnurlpay_metadata()).encode("utf-8")
- ).digest(),
+ description_hash=(await track.lnurlpay_metadata()).encode("utf-8"),
extra={"tag": "livestream", "track": track.id, "comment": comment},
)
diff --git a/lnbits/extensions/lnaddress/lnurl.py b/lnbits/extensions/lnaddress/lnurl.py
index e6a1ff486..49fd30e02 100644
--- a/lnbits/extensions/lnaddress/lnurl.py
+++ b/lnbits/extensions/lnaddress/lnurl.py
@@ -70,11 +70,9 @@ async def lnurl_callback(address_id, amount: int = Query(...)):
json={
"out": False,
"amount": int(amount_received / 1000),
- "description_hash": hashlib.sha256(
- (await address.lnurlpay_metadata(domain=domain.domain)).encode(
- "utf-8"
- )
- ).hexdigest(),
+ "description_hash": (
+ await address.lnurlpay_metadata(domain=domain.domain)
+ ).encode("utf-8"),
"extra": {"tag": f"Payment to {address.username}@{domain.domain}"},
},
timeout=40,
diff --git a/lnbits/extensions/lnaddress/views_api.py b/lnbits/extensions/lnaddress/views_api.py
index b1f1f0049..8f403a381 100644
--- a/lnbits/extensions/lnaddress/views_api.py
+++ b/lnbits/extensions/lnaddress/views_api.py
@@ -6,7 +6,7 @@ from fastapi.params import Depends, Query
from starlette.exceptions import HTTPException
from lnbits.core.crud import get_user
-from lnbits.core.services import check_invoice_status, create_invoice
+from lnbits.core.services import check_transaction_status, create_invoice
from lnbits.decorators import WalletTypeInfo, get_key_type
from lnbits.extensions.lnaddress.models import CreateAddress, CreateDomain
@@ -229,7 +229,7 @@ async def api_address_send_address(payment_hash):
address = await get_address(payment_hash)
domain = await get_domain(address.domain)
try:
- status = await check_invoice_status(domain.wallet, payment_hash)
+ status = await check_transaction_status(domain.wallet, payment_hash)
is_paid = not status.pending
except Exception as e:
return {"paid": False, "error": str(e)}
diff --git a/lnbits/extensions/lnticket/templates/lnticket/index.html b/lnbits/extensions/lnticket/templates/lnticket/index.html
index 6dafb4c23..9329be7b2 100644
--- a/lnbits/extensions/lnticket/templates/lnticket/index.html
+++ b/lnbits/extensions/lnticket/templates/lnticket/index.html
@@ -281,7 +281,13 @@
{% endraw %}
-
+
@@ -371,6 +377,9 @@
}
},
methods: {
+ resetForm() {
+ this.formDialog.data = {flatrate: false}
+ },
getTickets: function () {
var self = this
@@ -463,7 +472,7 @@
.then(function (response) {
self.forms.push(mapLNTicket(response.data))
self.formDialog.show = false
- self.formDialog.data = {}
+ self.resetForm()
})
.catch(function (error) {
LNbits.utils.notifyApiError(error)
@@ -497,7 +506,7 @@
})
self.forms.push(mapLNTicket(response.data))
self.formDialog.show = false
- self.formDialog.data = {}
+ self.resetForm()
})
.catch(function (error) {
LNbits.utils.notifyApiError(error)
diff --git a/lnbits/extensions/lnurldevice/lnurl.py b/lnbits/extensions/lnurldevice/lnurl.py
index 5e25dadbe..d8bd2e019 100644
--- a/lnbits/extensions/lnurldevice/lnurl.py
+++ b/lnbits/extensions/lnurldevice/lnurl.py
@@ -205,9 +205,7 @@ async def lnurl_callback(
wallet_id=device.wallet,
amount=lnurldevicepayment.sats / 1000,
memo=device.title,
- description_hash=hashlib.sha256(
- (await device.lnurlpay_metadata()).encode("utf-8")
- ).digest(),
+ description_hash=(await device.lnurlpay_metadata()).encode("utf-8"),
extra={"tag": "PoS"},
)
lnurldevicepayment = await update_lnurldevicepayment(
diff --git a/lnbits/extensions/lnurlp/lnurl.py b/lnbits/extensions/lnurlp/lnurl.py
index 2ba49e856..55f6807db 100644
--- a/lnbits/extensions/lnurlp/lnurl.py
+++ b/lnbits/extensions/lnurlp/lnurl.py
@@ -87,9 +87,7 @@ async def api_lnurl_callback(request: Request, link_id):
wallet_id=link.wallet,
amount=int(amount_received / 1000),
memo=link.description,
- description_hash=hashlib.sha256(
- link.lnurlpay_metadata.encode("utf-8")
- ).digest(),
+ description_hash=link.lnurlpay_metadata.encode("utf-8"),
extra={
"tag": "lnurlp",
"link": link.id,
diff --git a/lnbits/extensions/lnurlp/views_api.py b/lnbits/extensions/lnurlp/views_api.py
index 8d4569da9..97e8fd4c4 100644
--- a/lnbits/extensions/lnurlp/views_api.py
+++ b/lnbits/extensions/lnurlp/views_api.py
@@ -96,7 +96,7 @@ async def api_link_create_or_update(
data.min *= data.fiat_base_multiplier
data.max *= data.fiat_base_multiplier
- if "success_url" in data and data.success_url[:8] != "https://":
+ if data.success_url is not None and data.success_url.startswith("https://"):
raise HTTPException(
detail="Success URL must be secure https://...",
status_code=HTTPStatus.BAD_REQUEST,
diff --git a/lnbits/extensions/offlineshop/lnurl.py b/lnbits/extensions/offlineshop/lnurl.py
index 0bf779e47..5a2a0bcd2 100644
--- a/lnbits/extensions/offlineshop/lnurl.py
+++ b/lnbits/extensions/offlineshop/lnurl.py
@@ -73,9 +73,7 @@ async def lnurl_callback(request: Request, item_id: int):
wallet_id=shop.wallet,
amount=int(amount_received / 1000),
memo=item.name,
- description_hash=hashlib.sha256(
- (await item.lnurlpay_metadata()).encode("utf-8")
- ).digest(),
+ description_hash=(await item.lnurlpay_metadata()).encode("utf-8"),
extra={"tag": "offlineshop", "item": item.id},
)
except Exception as exc:
diff --git a/lnbits/extensions/paywall/views_api.py b/lnbits/extensions/paywall/views_api.py
index 8052c63ba..d2d498536 100644
--- a/lnbits/extensions/paywall/views_api.py
+++ b/lnbits/extensions/paywall/views_api.py
@@ -4,7 +4,7 @@ from fastapi import Depends, Query
from starlette.exceptions import HTTPException
from lnbits.core.crud import get_user, get_wallet
-from lnbits.core.services import check_invoice_status, create_invoice
+from lnbits.core.services import check_transaction_status, create_invoice
from lnbits.decorators import WalletTypeInfo, get_key_type
from . import paywall_ext
@@ -87,7 +87,7 @@ async def api_paywal_check_invoice(
status_code=HTTPStatus.NOT_FOUND, detail="Paywall does not exist."
)
try:
- status = await check_invoice_status(paywall.wallet, payment_hash)
+ status = await check_transaction_status(paywall.wallet, payment_hash)
is_paid = not status.pending
except Exception:
return {"paid": False}
diff --git a/lnbits/extensions/satsdice/lnurl.py b/lnbits/extensions/satsdice/lnurl.py
index 03d20502a..73c5e5540 100644
--- a/lnbits/extensions/satsdice/lnurl.py
+++ b/lnbits/extensions/satsdice/lnurl.py
@@ -77,9 +77,7 @@ async def api_lnurlp_callback(
wallet_id=link.wallet,
amount=int(amount_received / 1000),
memo="Satsdice bet",
- description_hash=hashlib.sha256(
- link.lnurlpay_metadata.encode("utf-8")
- ).digest(),
+ description_hash=link.lnurlpay_metadata.encode("utf-8"),
extra={"tag": "satsdice", "link": link.id, "comment": "comment"},
)
diff --git a/lnbits/extensions/satsdice/templates/satsdice/index.html b/lnbits/extensions/satsdice/templates/satsdice/index.html
index eb52b6b26..004e9ccbc 100644
--- a/lnbits/extensions/satsdice/templates/satsdice/index.html
+++ b/lnbits/extensions/satsdice/templates/satsdice/index.html
@@ -421,7 +421,13 @@
this.formDialog = {
show: false,
fixedAmount: true,
- data: {}
+ data: {
+ haircut: 0,
+ min_bet: 10,
+ max_bet: 1000,
+ currency: 'satoshis',
+ comment_chars: 0
+ }
}
},
updatePayLink(wallet, data) {
diff --git a/lnbits/extensions/satspay/__init__.py b/lnbits/extensions/satspay/__init__.py
index f33f3aa52..37245c21d 100644
--- a/lnbits/extensions/satspay/__init__.py
+++ b/lnbits/extensions/satspay/__init__.py
@@ -1,6 +1,7 @@
import asyncio
from fastapi import APIRouter
+from fastapi.staticfiles import StaticFiles
from lnbits.db import Database
from lnbits.helpers import template_renderer
@@ -11,6 +12,14 @@ db = Database("ext_satspay")
satspay_ext: APIRouter = APIRouter(prefix="/satspay", tags=["satspay"])
+satspay_static_files = [
+ {
+ "path": "/satspay/static",
+ "app": StaticFiles(directory="lnbits/extensions/satspay/static"),
+ "name": "satspay_static",
+ }
+]
+
def satspay_renderer():
return template_renderer(["lnbits/extensions/satspay/templates"])
diff --git a/lnbits/extensions/satspay/crud.py b/lnbits/extensions/satspay/crud.py
index 9deb32154..47d7a4a8d 100644
--- a/lnbits/extensions/satspay/crud.py
+++ b/lnbits/extensions/satspay/crud.py
@@ -6,7 +6,7 @@ from lnbits.core.services import create_invoice
from lnbits.core.views.api import api_payment
from lnbits.helpers import urlsafe_short_hash
-from ..watchonly.crud import get_fresh_address, get_mempool, get_watch_wallet
+from ..watchonly.crud import get_config, get_fresh_address
# from lnbits.db import open_ext_db
from . import db
@@ -18,7 +18,6 @@ from .models import Charges, CreateCharge
async def create_charge(user: str, data: CreateCharge) -> Charges:
charge_id = urlsafe_short_hash()
if data.onchainwallet:
- wallet = await get_watch_wallet(data.onchainwallet)
onchain = await get_fresh_address(data.onchainwallet)
onchainaddress = onchain.address
else:
@@ -89,7 +88,8 @@ async def get_charge(charge_id: str) -> Charges:
async def get_charges(user: str) -> List[Charges]:
rows = await db.fetchall(
- """SELECT * FROM satspay.charges WHERE "user" = ?""", (user,)
+ """SELECT * FROM satspay.charges WHERE "user" = ? ORDER BY "timestamp" DESC """,
+ (user,),
)
return [Charges.from_row(row) for row in rows]
@@ -102,14 +102,16 @@ async def check_address_balance(charge_id: str) -> List[Charges]:
charge = await get_charge(charge_id)
if not charge.paid:
if charge.onchainaddress:
- mempool = await get_mempool(charge.user)
+ config = await get_config(charge.user)
try:
async with httpx.AsyncClient() as client:
r = await client.get(
- mempool.endpoint + "/api/address/" + charge.onchainaddress
+ config.mempool_endpoint
+ + "/api/address/"
+ + charge.onchainaddress
)
respAmount = r.json()["chain_stats"]["funded_txo_sum"]
- if respAmount >= charge.balance:
+ if respAmount > charge.balance:
await update_charge(charge_id=charge_id, balance=respAmount)
except Exception:
pass
diff --git a/lnbits/extensions/satspay/models.py b/lnbits/extensions/satspay/models.py
index 7e8080dc9..e8638d5e2 100644
--- a/lnbits/extensions/satspay/models.py
+++ b/lnbits/extensions/satspay/models.py
@@ -1,4 +1,4 @@
-import time
+from datetime import datetime, timedelta
from sqlite3 import Row
from typing import Optional
@@ -38,12 +38,16 @@ class Charges(BaseModel):
def from_row(cls, row: Row) -> "Charges":
return cls(**dict(row))
+ @property
+ def time_left(self):
+ now = datetime.utcnow().timestamp()
+ start = datetime.fromtimestamp(self.timestamp)
+ expiration = (start + timedelta(minutes=self.time)).timestamp()
+ return (expiration - now) / 60
+
@property
def time_elapsed(self):
- if (self.timestamp + (self.time * 60)) >= time.time():
- return False
- else:
- return True
+ return self.time_left < 0
@property
def paid(self):
diff --git a/lnbits/extensions/satspay/static/js/utils.js b/lnbits/extensions/satspay/static/js/utils.js
new file mode 100644
index 000000000..9b4abbfca
--- /dev/null
+++ b/lnbits/extensions/satspay/static/js/utils.js
@@ -0,0 +1,31 @@
+const sleep = ms => new Promise(r => setTimeout(r, ms))
+const retryWithDelay = async function (fn, retryCount = 0) {
+ try {
+ await sleep(25)
+ // Do not return the call directly, use result.
+ // Otherwise the error will not be cought in this try-catch block.
+ const result = await fn()
+ return result
+ } catch (err) {
+ if (retryCount > 100) throw err
+ await sleep((retryCount + 1) * 1000)
+ return retryWithDelay(fn, retryCount + 1)
+ }
+}
+
+const mapCharge = (obj, oldObj = {}) => {
+ const charge = _.clone(obj)
+
+ charge.progress = obj.time_left < 0 ? 1 : 1 - obj.time_left / obj.time
+ charge.time = minutesToTime(obj.time)
+ charge.timeLeft = minutesToTime(obj.time_left)
+
+ charge.expanded = false
+ charge.displayUrl = ['/satspay/', obj.id].join('')
+ charge.expanded = oldObj.expanded
+ charge.pendingBalance = oldObj.pendingBalance || 0
+ return charge
+}
+
+const minutesToTime = min =>
+ min > 0 ? new Date(min * 1000).toISOString().substring(14, 19) : ''
diff --git a/lnbits/extensions/satspay/templates/satspay/_api_docs.html b/lnbits/extensions/satspay/templates/satspay/_api_docs.html
index 336ab8997..ed6587357 100644
--- a/lnbits/extensions/satspay/templates/satspay/_api_docs.html
+++ b/lnbits/extensions/satspay/templates/satspay/_api_docs.html
@@ -8,172 +8,10 @@
Created by, Ben Arc
+
+
+ Swagger REST API Documentation
-
-
-
-
-
- POST /satspay/api/v1/charge
- Headers
- {"X-Api-Key": <admin_key>}
-
- Body (application/json)
-
-
- Returns 200 OK (application/json)
-
- [<charge_object>, ...]
- Curl example
- curl -X POST {{ request.base_url }}satspay/api/v1/charge -d
- '{"onchainwallet": <string, watchonly_wallet_id>,
- "description": <string>, "webhook":<string>, "time":
- <integer>, "amount": <integer>, "lnbitswallet":
- <string, lnbits_wallet_id>}' -H "Content-type:
- application/json" -H "X-Api-Key: {{user.wallets[0].adminkey }}"
-
-
-
-
-
-
-
- PUT
- /satspay/api/v1/charge/<charge_id>
- Headers
- {"X-Api-Key": <admin_key>}
-
- Body (application/json)
-
-
- Returns 200 OK (application/json)
-
- [<charge_object>, ...]
- Curl example
- curl -X POST {{ request.base_url
- }}satspay/api/v1/charge/<charge_id> -d '{"onchainwallet":
- <string, watchonly_wallet_id>, "description": <string>,
- "webhook":<string>, "time": <integer>, "amount":
- <integer>, "lnbitswallet": <string, lnbits_wallet_id>}'
- -H "Content-type: application/json" -H "X-Api-Key:
- {{user.wallets[0].adminkey }}"
-
-
-
-
-
-
-
-
- GET
- /satspay/api/v1/charge/<charge_id>
- Headers
- {"X-Api-Key": <invoice_key>}
-
- Body (application/json)
-
-
- Returns 200 OK (application/json)
-
- [<charge_object>, ...]
- Curl example
- curl -X GET {{ request.base_url
- }}satspay/api/v1/charge/<charge_id> -H "X-Api-Key: {{
- user.wallets[0].inkey }}"
-
-
-
-
-
-
-
- GET /satspay/api/v1/charges
- Headers
- {"X-Api-Key": <invoice_key>}
-
- Body (application/json)
-
-
- Returns 200 OK (application/json)
-
- [<charge_object>, ...]
- Curl example
- curl -X GET {{ request.base_url }}satspay/api/v1/charges -H
- "X-Api-Key: {{ user.wallets[0].inkey }}"
-
-
-
-
-
-
-
- DELETE
- /satspay/api/v1/charge/<charge_id>
- Headers
- {"X-Api-Key": <admin_key>}
- Returns 204 NO CONTENT
-
- Curl example
- curl -X DELETE {{ request.base_url
- }}satspay/api/v1/charge/<charge_id> -H "X-Api-Key: {{
- user.wallets[0].adminkey }}"
-
-
-
-
-
-
-
- GET
- /satspay/api/v1/charges/balance/<charge_id>
-
- Body (application/json)
-
-
- Returns 200 OK (application/json)
-
- [<charge_object>, ...]
- Curl example
- curl -X GET {{ request.base_url
- }}satspay/api/v1/charges/balance/<charge_id> -H "X-Api-Key: {{
- user.wallets[0].inkey }}"
-
-
-
-
-
diff --git a/lnbits/extensions/satspay/templates/satspay/display.html b/lnbits/extensions/satspay/templates/satspay/display.html
index 8c577fbed..f34ac5095 100644
--- a/lnbits/extensions/satspay/templates/satspay/display.html
+++ b/lnbits/extensions/satspay/templates/satspay/display.html
@@ -1,223 +1,299 @@
{% extends "public.html" %} {% block page %}
-
-
-
-
- {{ charge.description }}
-
-
-
-
Time elapsed
-
-
-
Charge paid
-
-
-
-
-
- Awaiting payment...
-
- {% raw %} {{ newTimeLeft }} {% endraw %}
-
-
-
+
+
+
+
+
-
-
- Charge ID: {{ charge.id }}
+
+
-
- {% raw %} Total to pay: {{ charge_amount }}sats
- Amount paid: {{ charge_balance }}
- Amount due: {{ charge_amount - charge_balance }}sats {% endraw %}
-
-
-
-
-
-
-
-
- bitcoin lightning payment method not available
-
-
-
- pay with lightning
-
+ Time elapsed
-
-
-
- bitcoin onchain payment method not available
-
-
-
- pay onchain
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ Charge paid
-
- Pay this
- lightning-network invoice
+
+
+ Awaiting payment...
+
+ {% raw %} {{ charge.timeLeft }} {% endraw %}
+
+
+
+
+
+
+
+
+
+
+
Total to pay:
+
+
+ sat
+
+
+
+
+
Amount paid:
+
+
+
+ sat
-
-
-
-
-
-
-
- Copy invoice
+
+
+
Amount pending:
+
+
+ sat
+
+
+
+
+
Amount due:
+
+
+
+ sat
+
+
+ none
+
+
+
+
+
+
+
+
+ bitcoin lightning payment method not available
+
+
+
+ pay with lightning
+
+
+
+
+
+ bitcoin onchain payment method not available
+
+
+
+ pay onchain
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Pay this lightning-network invoice:
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
{% endblock %} {% block scripts %}
-
+
+
diff --git a/lnbits/extensions/satspay/templates/satspay/index.html b/lnbits/extensions/satspay/templates/satspay/index.html
index 551b81b8e..396200cf1 100644
--- a/lnbits/extensions/satspay/templates/satspay/index.html
+++ b/lnbits/extensions/satspay/templates/satspay/index.html
@@ -18,46 +18,54 @@
Charges
-
+
- Export to CSV
+
+
+
+
+
+
+ Export to CSV
+
+
+
+
-
-
-
-
- {{ col.label }}
-
+ Status
+ Title
+ Time Left (hh:mm)
+ Time To Pay (hh:mm)
+ Amount To Pay
+ Balance
+ Pending Balance
+ Onchain Address
@@ -66,73 +74,179 @@
+
+
+
+
+ expired
+
+
+
+ paid
+
+
+ waiting
+
+
+
+ {{props.row.description}}
- Payment link
-
-
-
+ {{props.row.timeLeft}}
+
- Time elapsed
-
-
-
- PAID!
-
-
-
- Processing
-
-
- Delete charge
-
+
-
-
- {{ col.value }}
+
+ {{props.row.time}}
+
+
+ {{props.row.amount}}
+
+
+ {{props.row.balance}}
+
+
+
+ {{props.row.pendingBalance ? props.row.pendingBalance : ''}}
+
+
+
+ {{props.row.onchainaddress}}
+
+
+
+
+
+
Onchain Wallet:
+
+ {{getOnchainWalletName(props.row.onchainwallet)}}
+
+
+
+
LNbits Wallet:
+
+ {{getLNbitsWalletName(props.row.lnbitswallet)}}
+
+
+
+
+
+
+
ID:
+
{{props.row.id}}
+
+
+
+
+ Details
+ Refresh Balance
+
+
+ Delete
+
+
+
+
@@ -155,11 +269,7 @@
-
+
@@ -284,49 +394,28 @@
+
+
+
diff --git a/lnbits/extensions/satspay/views.py b/lnbits/extensions/satspay/views.py
index d33d5c17e..69d81dadf 100644
--- a/lnbits/extensions/satspay/views.py
+++ b/lnbits/extensions/satspay/views.py
@@ -9,6 +9,7 @@ from starlette.responses import HTMLResponse
from lnbits.core.crud import get_wallet
from lnbits.core.models import User
from lnbits.decorators import check_user_exists
+from lnbits.extensions.watchonly.crud import get_config
from . import satspay_ext, satspay_renderer
from .crud import get_charge
@@ -24,14 +25,24 @@ async def index(request: Request, user: User = Depends(check_user_exists)):
@satspay_ext.get("/{charge_id}", response_class=HTMLResponse)
-async def display(request: Request, charge_id):
+async def display(request: Request, charge_id: str):
charge = await get_charge(charge_id)
if not charge:
raise HTTPException(
status_code=HTTPStatus.NOT_FOUND, detail="Charge link does not exist."
)
wallet = await get_wallet(charge.lnbitswallet)
+ onchainwallet_config = await get_config(charge.user)
+ inkey = wallet.inkey if wallet else None
+ mempool_endpoint = (
+ onchainwallet_config.mempool_endpoint if onchainwallet_config else None
+ )
return satspay_renderer().TemplateResponse(
"satspay/display.html",
- {"request": request, "charge": charge, "wallet_key": wallet.inkey},
+ {
+ "request": request,
+ "charge_data": charge.dict(),
+ "wallet_inkey": inkey,
+ "mempool_endpoint": mempool_endpoint,
+ },
)
diff --git a/lnbits/extensions/satspay/views_api.py b/lnbits/extensions/satspay/views_api.py
index c3e38f0cd..f94b970af 100644
--- a/lnbits/extensions/satspay/views_api.py
+++ b/lnbits/extensions/satspay/views_api.py
@@ -1,7 +1,6 @@
from http import HTTPStatus
import httpx
-from fastapi import Query
from fastapi.params import Depends
from starlette.exceptions import HTTPException
@@ -31,7 +30,12 @@ async def api_charge_create(
data: CreateCharge, wallet: WalletTypeInfo = Depends(require_invoice_key)
):
charge = await create_charge(user=wallet.wallet.user, data=data)
- return charge.dict()
+ return {
+ **charge.dict(),
+ **{"time_elapsed": charge.time_elapsed},
+ **{"time_left": charge.time_left},
+ **{"paid": charge.paid},
+ }
@satspay_ext.put("/api/v1/charge/{charge_id}")
@@ -51,6 +55,7 @@ async def api_charges_retrieve(wallet: WalletTypeInfo = Depends(get_key_type)):
{
**charge.dict(),
**{"time_elapsed": charge.time_elapsed},
+ **{"time_left": charge.time_left},
**{"paid": charge.paid},
}
for charge in await get_charges(wallet.wallet.user)
@@ -73,6 +78,7 @@ async def api_charge_retrieve(
return {
**charge.dict(),
**{"time_elapsed": charge.time_elapsed},
+ **{"time_left": charge.time_left},
**{"paid": charge.paid},
}
@@ -93,9 +99,18 @@ async def api_charge_delete(charge_id, wallet: WalletTypeInfo = Depends(get_key_
#############################BALANCE##########################
-@satspay_ext.get("/api/v1/charges/balance/{charge_id}")
-async def api_charges_balance(charge_id):
+@satspay_ext.get("/api/v1/charges/balance/{charge_ids}")
+async def api_charges_balance(charge_ids):
+ charge_id_list = charge_ids.split(",")
+ charges = []
+ for charge_id in charge_id_list:
+ charge = await api_charge_balance(charge_id)
+ charges.append(charge)
+ return charges
+
+@satspay_ext.get("/api/v1/charge/balance/{charge_id}")
+async def api_charge_balance(charge_id):
charge = await check_address_balance(charge_id)
if not charge:
@@ -125,23 +140,9 @@ async def api_charges_balance(charge_id):
)
except AssertionError:
charge.webhook = None
- return charge.dict()
-
-
-#############################MEMPOOL##########################
-
-
-@satspay_ext.put("/api/v1/mempool")
-async def api_update_mempool(
- endpoint: str = Query(...), wallet: WalletTypeInfo = Depends(get_key_type)
-):
- mempool = await update_mempool(endpoint, user=wallet.wallet.user)
- return mempool.dict()
-
-
-@satspay_ext.route("/api/v1/mempool")
-async def api_get_mempool(wallet: WalletTypeInfo = Depends(get_key_type)):
- mempool = await get_mempool(wallet.wallet.user)
- if not mempool:
- mempool = await create_mempool(user=wallet.wallet.user)
- return mempool.dict()
+ return {
+ **charge.dict(),
+ **{"time_elapsed": charge.time_elapsed},
+ **{"time_left": charge.time_left},
+ **{"paid": charge.paid},
+ }
diff --git a/lnbits/extensions/subdomains/views_api.py b/lnbits/extensions/subdomains/views_api.py
index ba87bc982..b01e6ffbb 100644
--- a/lnbits/extensions/subdomains/views_api.py
+++ b/lnbits/extensions/subdomains/views_api.py
@@ -5,7 +5,7 @@ from fastapi.params import Depends
from starlette.exceptions import HTTPException
from lnbits.core.crud import get_user
-from lnbits.core.services import check_invoice_status, create_invoice
+from lnbits.core.services import check_transaction_status, create_invoice
from lnbits.decorators import WalletTypeInfo, get_key_type
from lnbits.extensions.subdomains.models import CreateDomain, CreateSubdomain
@@ -161,7 +161,7 @@ async def api_subdomain_make_subdomain(domain_id, data: CreateSubdomain):
async def api_subdomain_send_subdomain(payment_hash):
subdomain = await get_subdomain(payment_hash)
try:
- status = await check_invoice_status(subdomain.wallet, payment_hash)
+ status = await check_transaction_status(subdomain.wallet, payment_hash)
is_paid = not status.pending
except Exception:
return {"paid": False}
diff --git a/lnbits/extensions/tipjar/views_api.py b/lnbits/extensions/tipjar/views_api.py
index 5a55a3ca0..50c5138b0 100644
--- a/lnbits/extensions/tipjar/views_api.py
+++ b/lnbits/extensions/tipjar/views_api.py
@@ -57,7 +57,7 @@ async def api_create_tip(data: createTips):
name = name.replace('"', "''")
if not name:
name = "Anonymous"
- description = f'"{name}": {message}'
+ description = f"{name}: {message}"
charge = await create_charge(
user=charge_details["user"],
data=CreateCharge(
diff --git a/lnbits/extensions/watchonly/README.md b/lnbits/extensions/watchonly/README.md
index be7bf351b..c07f75b11 100644
--- a/lnbits/extensions/watchonly/README.md
+++ b/lnbits/extensions/watchonly/README.md
@@ -8,15 +8,16 @@ You can now use this wallet on the LNBits [SatsPayServer](https://github.com/lnb
### Wallet Account
- a user can add one or more `xPubs` or `descriptors`
- - the `xPub` fingerprint must be unique per user
+ - the `xPub` must be unique per user
- such and entry is called an `Wallet Account`
- the addresses in a `Wallet Account` are split into `Receive Addresses` and `Change Address`
- the user interacts directly only with the `Receive Addresses` (by sharing them)
- see [BIP44](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account-discovery) for more details
- same `xPub` will always generate the same addresses (deterministic)
- when a `Wallet Account` is created, there are generated `20 Receive Addresses` and `5 Change Address`
- - the limits can be change from the `Config` page (see `screenshot 1`)
+ - the limits can be change from the `Config` page (see `screenshot 1`)
- regular wallets only scan up to `20` empty receive addresses. If the user generates addresses beyond this limit a warning is shown (see `screenshot 4`)
+ - an account can be added `From Hardware Device`
### Scan Blockchain
- when the user clicks `Scan Blockchain`, the wallet will loop over the all addresses (for each account)
@@ -48,33 +49,32 @@ You can now use this wallet on the LNBits [SatsPayServer](https://github.com/lnb
- shows the UTXOs for all wallets
- there can be multiple UTXOs for the same address
-### Make Payment
+### New Payment
- create a new `Partially Signed Bitcoin Transaction`
- multiple `Send Addresses` can be added
- the `Max` button next to an address is for sending the remaining funds to this address (no change)
- the user can select the inputs (UTXOs) manually, or it can use of the basic selection algorithms
- amounts have to be provided for the `Send Addresses` beforehand (so the algorithm knows the amount to be selected)
- - `Show Advanced` allows to (see `screenshot 2`):
- - select from which account the change address will be selected (defaults to the first one)
- - select the `Fee Rate`
- - it defaults to the `Medium` value at the moment the `Make Payment` button was clicked
- - it can be refreshed
- - warnings are shown if the fee is too Low or to High
+ - `Show Change` allows to select from which account the change address will be selected (defaults to the first one)
+ - `Show Custom Fee` allows to manually select the fee
+ - it defaults to the `Medium` value at the moment the `New Payment` button was clicked
+ - it can be refreshed
+ - warnings are shown if the fee is too Low or to High
-### Create PSBT
- - based on the Inputs & Outputs selected by the user a PSBT will be generated
- - this wallet is watch-only, therefore does not support signing
- - it is not mandatory for the `Selected Amount` to be grater than `Payed Amount`
- - the generated PSBT can be combined with other PSBTs that add more inputs.
- - the generated PSBT can be imported for signing into different wallets like Electrum
- - import the PSBT into Electrum and check the In/Outs/Fee (see `screenshot 3`)
+### Check & Send
+ - creates the PSBT and sends it to the Hardware Wallet
+ - a confirmation will be shown for each Output and for the Fee
+ - after the user confirms the addresses and amounts, the transaction will be signed on the Hardware Device
+
+### Share PSBT
+ - Show the PSBT without sending it to the Hardware Wallet
## Screensots
- screenshot 1:

- screenshot 2:
-
+
- screenshot 3:

diff --git a/lnbits/extensions/watchonly/crud.py b/lnbits/extensions/watchonly/crud.py
index b88a7df7e..21fea6f0f 100644
--- a/lnbits/extensions/watchonly/crud.py
+++ b/lnbits/extensions/watchonly/crud.py
@@ -4,8 +4,8 @@ from typing import List, Optional
from lnbits.helpers import urlsafe_short_hash
from . import db
-from .helpers import derive_address, parse_key
-from .models import Address, Config, Mempool, WalletAccount
+from .helpers import derive_address
+from .models import Address, Config, WalletAccount
##########################WALLETS####################
@@ -22,9 +22,10 @@ async def create_watch_wallet(w: WalletAccount) -> WalletAccount:
title,
type,
address_no,
- balance
+ balance,
+ network
)
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
""",
(
wallet_id,
@@ -35,6 +36,7 @@ async def create_watch_wallet(w: WalletAccount) -> WalletAccount:
w.type,
w.address_no,
w.balance,
+ w.network,
),
)
@@ -48,9 +50,10 @@ async def get_watch_wallet(wallet_id: str) -> Optional[WalletAccount]:
return WalletAccount.from_row(row) if row else None
-async def get_watch_wallets(user: str) -> List[WalletAccount]:
+async def get_watch_wallets(user: str, network: str) -> List[WalletAccount]:
rows = await db.fetchall(
- """SELECT * FROM watchonly.wallets WHERE "user" = ?""", (user,)
+ """SELECT * FROM watchonly.wallets WHERE "user" = ? AND network = ?""",
+ (user, network),
)
return [WalletAccount(**row) for row in rows]
@@ -238,41 +241,3 @@ async def get_config(user: str) -> Optional[Config]:
"""SELECT json_data FROM watchonly.config WHERE "user" = ?""", (user,)
)
return json.loads(row[0], object_hook=lambda d: Config(**d)) if row else None
-
-
-######################MEMPOOL#######################
-### TODO: fix statspay dependcy and remove
-async def create_mempool(user: str) -> Optional[Mempool]:
- await db.execute(
- """
- INSERT INTO watchonly.mempool ("user",endpoint)
- VALUES (?, ?)
- """,
- (user, "https://mempool.space"),
- )
- row = await db.fetchone(
- """SELECT * FROM watchonly.mempool WHERE "user" = ?""", (user,)
- )
- return Mempool.from_row(row) if row else None
-
-
-### TODO: fix statspay dependcy and remove
-async def update_mempool(user: str, **kwargs) -> Optional[Mempool]:
- q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()])
-
- await db.execute(
- f"""UPDATE watchonly.mempool SET {q} WHERE "user" = ?""",
- (*kwargs.values(), user),
- )
- row = await db.fetchone(
- """SELECT * FROM watchonly.mempool WHERE "user" = ?""", (user,)
- )
- return Mempool.from_row(row) if row else None
-
-
-### TODO: fix statspay dependcy and remove
-async def get_mempool(user: str) -> Mempool:
- row = await db.fetchone(
- """SELECT * FROM watchonly.mempool WHERE "user" = ?""", (user,)
- )
- return Mempool.from_row(row) if row else None
diff --git a/lnbits/extensions/watchonly/migrations.py b/lnbits/extensions/watchonly/migrations.py
index 8e371a2a0..0c06b7385 100644
--- a/lnbits/extensions/watchonly/migrations.py
+++ b/lnbits/extensions/watchonly/migrations.py
@@ -77,7 +77,19 @@ async def m004_create_config_table(db):
);"""
)
- ### TODO: fix statspay dependcy first
- # await db.execute(
- # "DROP TABLE watchonly.wallets;"
- # )
+
+async def m005_add_network_column_to_wallets(db):
+ """
+ Add network' column to the 'wallets' table
+ """
+
+ await db.execute(
+ "ALTER TABLE watchonly.wallets ADD COLUMN network TEXT DEFAULT 'Mainnet';"
+ )
+
+
+async def m006_drop_mempool_table(db):
+ """
+ Mempool data is now part of `config`
+ """
+ await db.execute("DROP TABLE watchonly.mempool;")
diff --git a/lnbits/extensions/watchonly/models.py b/lnbits/extensions/watchonly/models.py
index bc10e4210..4bf0dfcac 100644
--- a/lnbits/extensions/watchonly/models.py
+++ b/lnbits/extensions/watchonly/models.py
@@ -1,5 +1,5 @@
from sqlite3 import Row
-from typing import List
+from typing import List, Optional
from fastapi.param_functions import Query
from pydantic import BaseModel
@@ -8,6 +8,7 @@ from pydantic import BaseModel
class CreateWallet(BaseModel):
masterpub: str = Query("")
title: str = Query("")
+ network: str = "Mainnet"
class WalletAccount(BaseModel):
@@ -19,22 +20,13 @@ class WalletAccount(BaseModel):
address_no: int
balance: int
type: str = ""
+ network: str = "Mainnet"
@classmethod
def from_row(cls, row: Row) -> "WalletAccount":
return cls(**dict(row))
-### TODO: fix statspay dependcy and remove
-class Mempool(BaseModel):
- user: str
- endpoint: str
-
- @classmethod
- def from_row(cls, row: Row) -> "Mempool":
- return cls(**dict(row))
-
-
class Address(BaseModel):
id: str
address: str
@@ -57,7 +49,7 @@ class TransactionInput(BaseModel):
address: str
branch_index: int
address_index: int
- masterpub_fingerprint: str
+ wallet: str
tx_hex: str
@@ -66,10 +58,11 @@ class TransactionOutput(BaseModel):
address: str
branch_index: int = None
address_index: int = None
- masterpub_fingerprint: str = None
+ wallet: str = None
class MasterPublicKey(BaseModel):
+ id: str
public_key: str
fingerprint: str
@@ -82,8 +75,23 @@ class CreatePsbt(BaseModel):
tx_size: int
+class ExtractPsbt(BaseModel):
+ psbtBase64 = "" # // todo snake case
+ inputs: List[TransactionInput]
+
+
+class SignedTransaction(BaseModel):
+ tx_hex: Optional[str]
+ tx_json: Optional[str]
+
+
+class BroadcastTransaction(BaseModel):
+ tx_hex: str
+
+
class Config(BaseModel):
mempool_endpoint = "https://mempool.space"
receive_gap_limit = 20
change_gap_limit = 5
sats_denominated = True
+ network = "Mainnet"
diff --git a/lnbits/extensions/watchonly/static/components/address-list/address-list.html b/lnbits/extensions/watchonly/static/components/address-list/address-list.html
new file mode 100644
index 000000000..f21210631
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/address-list/address-list.html
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{satBtc(props.row.amount)}}
+
+
+
+ {{props.row.note}}
+
+
+ {{getWalletName(props.row.wallet)}}
+
+
+
+
+
+
+
+
+ QR Code
+
+
+
+ Rescan
+
+
+ History
+
+
+ View Coins
+
+
+
+
+
Note:
+
+
+
+
+ Update
+
+
+
+
+
+
+
+ {{props.row.error}}
+
+
+
+
+
+ Gap limit of 20 addresses exceeded. Other wallets might not
+ detect funds at this address.
+
+
+
+
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/address-list/address-list.js b/lnbits/extensions/watchonly/static/components/address-list/address-list.js
new file mode 100644
index 000000000..ebb8c87f8
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/address-list/address-list.js
@@ -0,0 +1,121 @@
+async function addressList(path) {
+ const template = await loadTemplateAsync(path)
+ Vue.component('address-list', {
+ name: 'address-list',
+ template,
+
+ props: [
+ 'addresses',
+ 'accounts',
+ 'mempool-endpoint',
+ 'inkey',
+ 'sats-denominated'
+ ],
+ data: function () {
+ return {
+ show: false,
+ history: [],
+ selectedWallet: null,
+ note: '',
+ filterOptions: [
+ 'Show Change Addresses',
+ 'Show Gap Addresses',
+ 'Only With Amount'
+ ],
+ filterValues: [],
+
+ addressesTable: {
+ columns: [
+ {
+ name: 'expand',
+ align: 'left',
+ label: ''
+ },
+ {
+ name: 'address',
+ align: 'left',
+ label: 'Address',
+ field: 'address',
+ sortable: true
+ },
+ {
+ name: 'amount',
+ align: 'left',
+ label: 'Amount',
+ field: 'amount',
+ sortable: true
+ },
+ {
+ name: 'note',
+ align: 'left',
+ label: 'Note',
+ field: 'note',
+ sortable: true
+ },
+ {
+ name: 'wallet',
+ align: 'left',
+ label: 'Account',
+ field: 'wallet',
+ sortable: true
+ }
+ ],
+ pagination: {
+ rowsPerPage: 0,
+ sortBy: 'amount',
+ descending: true
+ },
+ filter: ''
+ }
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.satsDenominated)
+ },
+ getWalletName: function (walletId) {
+ const wallet = (this.accounts || []).find(wl => wl.id === walletId)
+ return wallet ? wallet.title : 'unknown'
+ },
+ getFilteredAddresses: function () {
+ const selectedWalletId = this.selectedWallet?.id
+ const filter = this.filterValues || []
+ const includeChangeAddrs = filter.includes('Show Change Addresses')
+ const includeGapAddrs = filter.includes('Show Gap Addresses')
+ const excludeNoAmount = filter.includes('Only With Amount')
+
+ const walletsLimit = (this.accounts || []).reduce((r, w) => {
+ r[`_${w.id}`] = w.address_no
+ return r
+ }, {})
+
+ const fAddresses = this.addresses.filter(
+ a =>
+ (includeChangeAddrs || !a.isChange) &&
+ (includeGapAddrs ||
+ a.isChange ||
+ a.addressIndex <= walletsLimit[`_${a.wallet}`]) &&
+ !(excludeNoAmount && a.amount === 0) &&
+ (!selectedWalletId || a.wallet === selectedWalletId)
+ )
+ return fAddresses
+ },
+
+ scanAddress: async function (addressData) {
+ this.$emit('scan:address', addressData)
+ },
+ showAddressDetails: function (addressData) {
+ this.$emit('show-address-details', addressData)
+ },
+ searchInTab: function (tab, value) {
+ this.$emit('search:tab', {tab, value})
+ },
+ updateNoteForAddress: async function (addressData, note) {
+ this.$emit('update:note', {addressId: addressData.id, note})
+ }
+ },
+
+ created: async function () {}
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/fee-rate/fee-rate.html b/lnbits/extensions/watchonly/static/components/fee-rate/fee-rate.html
new file mode 100644
index 000000000..c65ad1c46
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/fee-rate/fee-rate.html
@@ -0,0 +1,61 @@
+
+
+
Fee Rate:
+
+
+
+
+
+
+
+
+
+
+
+ Warning! The fee is too low. The transaction might take a long time to
+ confirm.
+
+
+ Warning! The fee is too high. You might be overpaying for this
+ transaction.
+
+
+
+
+
+
Fee:
+
{{feeValue}} sats
+
+ Refresh Fee Rates
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/fee-rate/fee-rate.js b/lnbits/extensions/watchonly/static/components/fee-rate/fee-rate.js
new file mode 100644
index 000000000..7a920a9a4
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/fee-rate/fee-rate.js
@@ -0,0 +1,64 @@
+async function feeRate(path) {
+ const template = await loadTemplateAsync(path)
+ Vue.component('fee-rate', {
+ name: 'fee-rate',
+ template,
+
+ props: ['rate', 'fee-value', 'sats-denominated', 'mempool-endpoint'],
+
+ computed: {
+ feeRate: {
+ get: function () {
+ return this['rate']
+ },
+ set: function (value) {
+ this.$emit('update:rate', +value)
+ }
+ }
+ },
+
+ data: function () {
+ return {
+ recommededFees: {
+ fastestFee: 1,
+ halfHourFee: 1,
+ hourFee: 1,
+ economyFee: 1,
+ minimumFee: 1
+ }
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.satsDenominated)
+ },
+
+ refreshRecommendedFees: async function () {
+ const fn = async () => {
+ const {
+ bitcoin: {fees: feesAPI}
+ } = mempoolJS({
+ hostname: this.mempoolEndpoint
+ })
+ return feesAPI.getFeesRecommended()
+ }
+ this.recommededFees = await retryWithDelay(fn)
+ },
+ getFeeRateLabel: function (feeRate) {
+ const fees = this.recommededFees
+ if (feeRate >= fees.fastestFee)
+ return `High Priority (${feeRate} sat/vB)`
+ if (feeRate >= fees.halfHourFee)
+ return `Medium Priority (${feeRate} sat/vB)`
+ if (feeRate >= fees.hourFee) return `Low Priority (${feeRate} sat/vB)`
+ return `No Priority (${feeRate} sat/vB)`
+ }
+ },
+
+ created: async function () {
+ await this.refreshRecommendedFees()
+ this.feeRate = this.recommededFees.halfHourFee
+ }
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/history/history.html b/lnbits/extensions/watchonly/static/components/history/history.html
new file mode 100644
index 000000000..ac805dfa6
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/history/history.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Export to CSV
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{props.row.confirmed ? 'Sent' : 'Sending...'}}
+
+
+ {{props.row.confirmed ? 'Received' : 'Receiving...'}}
+
+
+
+ {{satBtc(props.row.totalAmount || props.row.amount)}}
+
+
+
+ {{props.row.address}}
+
+ ...
+
+
+ {{ props.row.date }}
+
+
+
+
+
+
UTXOs
+
{{satBtc(props.row.amount)}}
+
{{props.row.address}}
+
+
+
+
{{satBtc(s.amount)}}
+
{{s.address}}
+
+
+
Fee
+
{{satBtc(props.row.fee)}}
+
+
+
Block Height
+
{{props.row.height}}
+
+
+
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/history/history.js b/lnbits/extensions/watchonly/static/components/history/history.js
new file mode 100644
index 000000000..574a1ef69
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/history/history.js
@@ -0,0 +1,94 @@
+async function history(path) {
+ const template = await loadTemplateAsync(path)
+ Vue.component('history', {
+ name: 'history',
+ template,
+
+ props: ['history', 'mempool-endpoint', 'sats-denominated', 'filter'],
+ data: function () {
+ return {
+ historyTable: {
+ columns: [
+ {
+ name: 'expand',
+ align: 'left',
+ label: ''
+ },
+ {
+ name: 'status',
+ align: 'left',
+ label: 'Status'
+ },
+ {
+ name: 'amount',
+ align: 'left',
+ label: 'Amount',
+ field: 'amount',
+ sortable: true
+ },
+ {
+ name: 'address',
+ align: 'left',
+ label: 'Address',
+ field: 'address',
+ sortable: true
+ },
+ {
+ name: 'date',
+ align: 'left',
+ label: 'Date',
+ field: 'date',
+ sortable: true
+ }
+ ],
+ exportColums: [
+ {
+ label: 'Action',
+ field: 'action'
+ },
+ {
+ label: 'Date&Time',
+ field: 'date'
+ },
+ {
+ label: 'Amount',
+ field: 'amount'
+ },
+ {
+ label: 'Fee',
+ field: 'fee'
+ },
+ {
+ label: 'Transaction Id',
+ field: 'txId'
+ }
+ ],
+ pagination: {
+ rowsPerPage: 0
+ }
+ }
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.satsDenominated)
+ },
+ getFilteredAddressesHistory: function () {
+ return this.history.filter(a => (!a.isChange || a.sent) && !a.isSubItem)
+ },
+ exportHistoryToCSV: function () {
+ const history = this.getFilteredAddressesHistory().map(a => ({
+ ...a,
+ action: a.sent ? 'Sent' : 'Received'
+ }))
+ LNbits.utils.exportCSV(
+ this.historyTable.exportColums,
+ history,
+ 'address-history'
+ )
+ }
+ },
+ created: async function () {}
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/my-checkbox/my-checkbox.html b/lnbits/extensions/watchonly/static/components/my-checkbox/my-checkbox.html
new file mode 100644
index 000000000..83af12484
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/my-checkbox/my-checkbox.html
@@ -0,0 +1,5 @@
+
diff --git a/lnbits/extensions/watchonly/static/components/my-checkbox/my-checkbox.js b/lnbits/extensions/watchonly/static/components/my-checkbox/my-checkbox.js
new file mode 100644
index 000000000..3d22c3a05
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/my-checkbox/my-checkbox.js
@@ -0,0 +1,16 @@
+async function initMyCheckbox(path) {
+ const t = await loadTemplateAsync(path)
+ Vue.component('my-checkbox', {
+ name: 'my-checkbox',
+ template: t,
+ data() {
+ return {checked: false, title: 'Check me'}
+ },
+ methods: {
+ check() {
+ this.checked = !this.checked
+ console.log('### checked', this.checked)
+ }
+ }
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/payment/payment.html b/lnbits/extensions/watchonly/static/components/payment/payment.html
new file mode 100644
index 000000000..cde65ca29
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/payment/payment.html
@@ -0,0 +1,312 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fee Rate:
+
+ {{feeRate}} sats/vbyte
+ Fee:
+ {{satBtc(feeValue)}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Balance:
+ {{satBtc(balance)}}
+ Selected:
+
+ {{satBtc(selectedAmount)}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Below dust limit. Will be used as fee.
+
+
+
+
+ Change:
+
+ {{satBtc(0)}}
+
+
+ {{satBtc(changeAmount)}}
+
+
+
+
+
+
+
+
+
+
Change Account:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Serial Port
+
+ Sign using a Serial Port device
+
+
+
+
+ Share PSBT
+ Share the PSBT as text or Animated QR Code
+
+
+
+
+
+
+
+
+
+ The payed amount is higher than the selected amount!
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
+
+
+
+ Transaction Details
+
+
+
+
+
+
+
Version
+
{{signedTx.version}}
+
+
+
Locktime
+
{{signedTx.locktime}}
+
+
+
Fee
+
+ {{satBtc(signedTx.fee)}}
+
+
+
+
Outputs
+
+
+
+ {{satBtc(out.amount)}}
+
+
+
+ {{out.address}}
+
+
+
+
+
+
+
+
+
+ Send
+ Close
+
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/payment/payment.js b/lnbits/extensions/watchonly/static/components/payment/payment.js
new file mode 100644
index 000000000..1459083c1
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/payment/payment.js
@@ -0,0 +1,336 @@
+async function payment(path) {
+ const t = await loadTemplateAsync(path)
+ Vue.component('payment', {
+ name: 'payment',
+ template: t,
+
+ props: [
+ 'accounts',
+ 'addresses',
+ 'utxos',
+ 'mempool-endpoint',
+ 'sats-denominated',
+ 'serial-signer-ref',
+ 'adminkey'
+ ],
+ watch: {
+ immediate: true,
+ accounts() {
+ this.updateChangeAddress()
+ },
+ addresses() {
+ this.updateChangeAddress()
+ }
+ },
+
+ data: function () {
+ return {
+ DUST_LIMIT: 546,
+ tx: null,
+ psbtBase64: null,
+ psbtBase64Signed: null,
+ signedTx: null,
+ signedTxHex: null,
+ sentTxId: null,
+ signedTxId: null,
+ paymentTab: 'destination',
+ sendToList: [{address: '', amount: undefined}],
+ changeWallet: null,
+ changeAddress: {},
+ showCustomFee: false,
+ showCoinSelect: false,
+ showChecking: false,
+ showChange: false,
+ showPsbt: false,
+ showFinalTx: false,
+ feeRate: 1
+ }
+ },
+
+ computed: {
+ txSize: function () {
+ const tx = this.createTx()
+ return Math.round(txSize(tx))
+ },
+ txSizeNoChange: function () {
+ const tx = this.createTx(true)
+ return Math.round(txSize(tx))
+ },
+ feeValue: function () {
+ return this.feeRate * this.txSize
+ },
+ selectedAmount: function () {
+ return this.utxos
+ .filter(utxo => utxo.selected)
+ .reduce((t, a) => t + (a.amount || 0), 0)
+ },
+ changeAmount: function () {
+ return (
+ this.selectedAmount -
+ this.totalPayedAmount -
+ this.feeRate * this.txSize
+ )
+ },
+ balance: function () {
+ return this.utxos.reduce((t, a) => t + (a.amount || 0), 0)
+ },
+ totalPayedAmount: function () {
+ return this.sendToList.reduce((t, a) => t + (a.amount || 0), 0)
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.satsDenominated)
+ },
+ checkAndSend: async function () {
+ this.showChecking = true
+ try {
+ if (!this.serialSignerRef.isConnected()) {
+ const portOpen = await this.serialSignerRef.openSerialPort()
+ if (!portOpen) return
+ }
+ if (!this.serialSignerRef.isAuthenticated()) {
+ await this.serialSignerRef.hwwShowPasswordDialog()
+ const authenticated = await this.serialSignerRef.isAuthenticating()
+ if (!authenticated) return
+ }
+
+ await this.createPsbt()
+
+ if (this.psbtBase64) {
+ const txData = {
+ outputs: this.tx.outputs,
+ feeRate: this.tx.fee_rate,
+ feeValue: this.feeValue
+ }
+ await this.serialSignerRef.hwwSendPsbt(this.psbtBase64, txData)
+ await this.serialSignerRef.isSendingPsbt()
+ }
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Cannot check and sign PSBT!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ } finally {
+ this.showChecking = false
+ this.psbtBase64 = null
+ }
+ },
+ showPsbtDialog: async function () {
+ try {
+ const valid = await this.$refs.paymentFormRef.validate()
+ if (!valid) return
+
+ const data = await this.createPsbt()
+ if (data) {
+ this.showPsbt = true
+ }
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to create PSBT!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ createPsbt: async function () {
+ try {
+ console.log('### this.createPsbt')
+ this.tx = this.createTx()
+ for (const input of this.tx.inputs) {
+ input.tx_hex = await this.fetchTxHex(input.tx_id)
+ }
+
+ const changeOutput = this.tx.outputs.find(o => o.branch_index === 1)
+ if (changeOutput) changeOutput.amount = this.changeAmount
+
+ const {data} = await LNbits.api.request(
+ 'POST',
+ '/watchonly/api/v1/psbt',
+ this.adminkey,
+ this.tx
+ )
+
+ this.psbtBase64 = data
+ return data
+ } catch (err) {
+ LNbits.utils.notifyApiError(err)
+ }
+ },
+ createTx: function (excludeChange = false) {
+ const tx = {
+ fee_rate: this.feeRate,
+ masterpubs: this.accounts.map(w => ({
+ id: w.id,
+ public_key: w.masterpub,
+ fingerprint: w.fingerprint
+ }))
+ }
+ tx.inputs = this.utxos
+ .filter(utxo => utxo.selected)
+ .map(mapUtxoToPsbtInput)
+ .sort((a, b) =>
+ a.tx_id < b.tx_id ? -1 : a.tx_id > b.tx_id ? 1 : a.vout - b.vout
+ )
+
+ tx.outputs = this.sendToList.map(out => ({
+ address: out.address,
+ amount: out.amount
+ }))
+
+ if (!excludeChange) {
+ const change = this.createChangeOutput()
+ const diffAmount = this.selectedAmount - this.totalPayedAmount
+ if (diffAmount >= this.DUST_LIMIT) {
+ tx.outputs.push(change)
+ }
+ }
+ tx.tx_size = Math.round(txSize(tx))
+ tx.inputs = _.shuffle(tx.inputs)
+ tx.outputs = _.shuffle(tx.outputs)
+
+ return tx
+ },
+ createChangeOutput: function () {
+ const change = this.changeAddress
+ const walletAcount =
+ this.accounts.find(w => w.id === change.wallet) || {}
+
+ return {
+ address: change.address,
+ address_index: change.addressIndex,
+ branch_index: change.isChange ? 1 : 0,
+ wallet: walletAcount.id
+ }
+ },
+ selectChangeAddress: function (account) {
+ if (!account) this.changeAddress = ''
+ this.changeAddress =
+ this.addresses.find(
+ a => a.wallet === account.id && a.isChange && !a.hasActivity
+ ) || {}
+ },
+ updateChangeAddress: function () {
+ if (this.changeWallet) {
+ const changeAccount = (this.accounts || []).find(
+ w => w.id === this.changeWallet.id
+ )
+ // change account deleted
+ if (!changeAccount) {
+ this.changeWallet = this.accounts[0]
+ }
+ } else {
+ this.changeWallet = this.accounts[0]
+ }
+ this.selectChangeAddress(this.changeWallet)
+ },
+ updateSignedPsbt: async function (psbtBase64) {
+ try {
+ this.showChecking = true
+ this.psbtBase64Signed = psbtBase64
+
+ console.log('### payment updateSignedPsbt psbtBase64', psbtBase64)
+
+ const data = await this.extractTxFromPsbt(psbtBase64)
+ this.showFinalTx = true
+ if (data) {
+ this.signedTx = JSON.parse(data.tx_json)
+ this.signedTxHex = data.tx_hex
+ } else {
+ this.signedTx = null
+ this.signedTxHex = null
+ }
+ } finally {
+ this.showChecking = false
+ }
+ },
+ extractTxFromPsbt: async function (psbtBase64) {
+ console.log('### extractTxFromPsbt psbtBase64', psbtBase64)
+ try {
+ const {data} = await LNbits.api.request(
+ 'PUT',
+ '/watchonly/api/v1/psbt/extract',
+ this.adminkey,
+ {
+ psbtBase64,
+ inputs: this.tx.inputs
+ }
+ )
+ console.log('### extractTxFromPsbt data', data)
+ return data
+ } catch (error) {
+ console.log('### error', error)
+ this.$q.notify({
+ type: 'warning',
+ message: 'Cannot finalize PSBT!',
+ timeout: 10000
+ })
+ LNbits.utils.notifyApiError(error)
+ }
+ },
+ broadcastTransaction: async function () {
+ try {
+ const {data} = await LNbits.api.request(
+ 'POST',
+ '/watchonly/api/v1/tx',
+ this.adminkey,
+ {tx_hex: this.signedTxHex}
+ )
+ this.sentTxId = data
+
+ this.$q.notify({
+ type: 'positive',
+ message: 'Transaction broadcasted!',
+ caption: `${data}`,
+ timeout: 10000
+ })
+
+ // todo: event rescan with amount
+ // todo: display tx id
+ } catch (error) {
+ this.sentTxId = null
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to broadcast!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ } finally {
+ this.showFinalTx = false
+ }
+ },
+ fetchTxHex: async function (txId) {
+ const {
+ bitcoin: {transactions: transactionsAPI}
+ } = mempoolJS({
+ hostname: this.mempoolEndpoint
+ })
+
+ try {
+ const response = await transactionsAPI.getTxHex({txid: txId})
+ return response
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: `Failed to fetch transaction details for tx id: '${txId}'`,
+ timeout: 10000
+ })
+ LNbits.utils.notifyApiError(error)
+ throw error
+ }
+ },
+ handleOutputsChange: function () {
+ this.$refs.utxoList.refreshUtxoSelection(this.totalPayedAmount)
+ },
+ getTotalPaymentAmount: function () {
+ return this.sendToList.reduce((t, a) => t + (a.amount || 0), 0)
+ }
+ },
+
+ created: async function () {}
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/send-to/send-to.html b/lnbits/extensions/watchonly/static/components/send-to/send-to.html
new file mode 100644
index 000000000..c16ebf95d
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/send-to/send-to.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Max
+
+
+
+
+
+
+
+ Add
+
+
+
+ Payed Amount:
+
+ {{satBtc(getTotalPaymentAmount())}}
+
+
+
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/send-to/send-to.js b/lnbits/extensions/watchonly/static/components/send-to/send-to.js
new file mode 100644
index 000000000..2b93cea7b
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/send-to/send-to.js
@@ -0,0 +1,81 @@
+async function sendTo(path) {
+ const template = await loadTemplateAsync(path)
+ Vue.component('send-to', {
+ name: 'send-to',
+ template,
+
+ props: [
+ 'data',
+ 'tx-size',
+ 'selected-amount',
+ 'fee-rate',
+ 'sats-denominated'
+ ],
+
+ computed: {
+ dataLocal: {
+ get: function () {
+ return this.data
+ },
+ set: function (value) {
+ console.log('### computed update data', value)
+ this.$emit('update:data', value)
+ }
+ }
+ },
+
+ data: function () {
+ return {
+ DUST_LIMIT: 546,
+ paymentTable: {
+ columns: [
+ {
+ name: 'data',
+ align: 'left'
+ }
+ ],
+ pagination: {
+ rowsPerPage: 10
+ },
+ filter: ''
+ }
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.satsDenominated)
+ },
+ addPaymentAddress: function () {
+ this.dataLocal.push({address: '', amount: undefined})
+ this.handleOutputsChange()
+ },
+ deletePaymentAddress: function (v) {
+ const index = this.dataLocal.indexOf(v)
+ if (index !== -1) {
+ this.dataLocal.splice(index, 1)
+ }
+ this.handleOutputsChange()
+ },
+
+ sendMaxToAddress: function (paymentAddress = {}) {
+ const feeValue = this.feeRate * this.txSize
+ const inputAmount = this.selectedAmount
+ const currentAmount = Math.max(0, paymentAddress.amount || 0)
+ const payedAmount = this.getTotalPaymentAmount() - currentAmount
+ paymentAddress.amount = Math.max(
+ 0,
+ inputAmount - payedAmount - feeValue
+ )
+ },
+ handleOutputsChange: function () {
+ this.$emit('update:outputs')
+ },
+ getTotalPaymentAmount: function () {
+ return this.dataLocal.reduce((t, a) => t + (a.amount || 0), 0)
+ }
+ },
+
+ created: async function () {}
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/serial-port-config/serial-port-config.html b/lnbits/extensions/watchonly/static/components/serial-port-config/serial-port-config.html
new file mode 100644
index 000000000..392ace177
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/serial-port-config/serial-port-config.html
@@ -0,0 +1,67 @@
+
diff --git a/lnbits/extensions/watchonly/static/components/serial-port-config/serial-port-config.js b/lnbits/extensions/watchonly/static/components/serial-port-config/serial-port-config.js
new file mode 100644
index 000000000..8c1554356
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/serial-port-config/serial-port-config.js
@@ -0,0 +1,24 @@
+async function serialPortConfig(path) {
+ const t = await loadTemplateAsync(path)
+ Vue.component('serial-port-config', {
+ name: 'serial-port-config',
+ template: t,
+ data() {
+ return {
+ config: {
+ baudRate: 9600,
+ bufferSize: 255,
+ dataBits: 8,
+ flowControl: 'none',
+ parity: 'none',
+ stopBits: 1
+ }
+ }
+ },
+ methods: {
+ getConfig: function () {
+ return this.config
+ }
+ }
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/serial-signer/serial-signer.html b/lnbits/extensions/watchonly/static/components/serial-signer/serial-signer.html
new file mode 100644
index 000000000..eed1c5606
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/serial-signer/serial-signer.html
@@ -0,0 +1,451 @@
+
+
+
+
+
+ Login
+ Enter password for Hardware Wallet.
+
+
+
+
+
+ Logout
+ Clear password for HWW.
+
+
+
+
+ Config & Connect
+ Set the Serial Port communication parameters.
+
+
+
+
+ Disconnect
+ Disconnect from Serial Port.
+
+
+
+
+
+ Restore
+ Restore wallet from existing word list.
+
+
+
+
+ Show Seed
+ Show seed on the Hardware Wallet display.
+
+
+
+
+ Wipe
+ Clean-up the wallet. New random seed.
+
+
+
+
+ Help
+ View available comands.
+
+
+
+
+ Console
+ Show the serial port communication messages
+
+
+
+
+
+
+
+
+ Enter Config
+
+
+
+
+ Connect
+ Cancel
+
+
+
+
+
+
+
+
+ Enter password for Hardware Wallet (8 numbers/letters)
+
+
+
+ Login
+ Cancel
+
+
+
+
+
+
+
+
+
+
+
+ Output {{hww.confirm.outputIndex}}
+
+ change
+
+
+
+
+
+ Address:
+
+
+ {{tx.outputs[hww.confirm.outputIndex].address}}
+
+
+
+
+ Amount:
+
+
+ {{satBtc(tx.outputs[hww.confirm.outputIndex].amount)}}
+
+
+
+
+ Fee:
+
+
+ {{satBtc(tx.feeValue)}}
+
+
+
+
+ Fee Rate:
+
+
+ {{tx.feeRate}} sats/vbyte
+
+
+
+
+
+
+ Check data on the display of the hardware device.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
+
+ This action will remove all data from the Hardware Wallet. Please
+ create a back-up for the seed!
+
+ Enter new password for Hardware Wallet (8 numbers/letters)
+
+
+
+
+ This action cannot be reversed!
+
+
+
+ Wipe
+ Cancel
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
+
+ Check word at position {{hww.seedWordPosition}} on display
+
+
+
+ Prev
+
+
+ Next
+
+
+ Close
+
+
+
+
+
+
+
+
+
+ For test purposes only. Do not enter word list with real funds!!!
+
+
+ Enter new word list separated by space
+
+
+
+
+
+
+ Enter new password (8 numbers/letters)
+
+
+
+
+
+
+
+
+
+ For test purposes only. Do not enter word list with real funds!!!
+
+
+
+ ALL existing data on the Hardware Device will be lost.
+
+
+
+ Restore
+ Cancel
+
+
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/serial-signer/serial-signer.js b/lnbits/extensions/watchonly/static/components/serial-signer/serial-signer.js
new file mode 100644
index 000000000..b12550319
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/serial-signer/serial-signer.js
@@ -0,0 +1,601 @@
+async function serialSigner(path) {
+ const t = await loadTemplateAsync(path)
+ Vue.component('serial-signer', {
+ name: 'serial-signer',
+ template: t,
+
+ props: ['sats-denominated', 'network'],
+ data: function () {
+ return {
+ selectedPort: null,
+ writableStreamClosed: null,
+ writer: null,
+ readableStreamClosed: null,
+ reader: null,
+ receivedData: '',
+ config: {},
+
+ hww: {
+ password: null,
+ showPassword: false,
+ mnemonic: null,
+ showMnemonic: false,
+ authenticated: false,
+ showPasswordDialog: false,
+ showConfigDialog: false,
+ showWipeDialog: false,
+ showRestoreDialog: false,
+ showConfirmationDialog: false,
+ showSignedPsbt: false,
+ sendingPsbt: false,
+ signingPsbt: false,
+ loginResolve: null,
+ psbtSentResolve: null,
+ xpubResolve: null,
+ seedWordPosition: 1,
+ showSeedDialog: false,
+ confirm: {
+ outputIndex: 0,
+ showFee: false
+ }
+ },
+ tx: null, // todo: move to hww
+
+ showConsole: false
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.satsDenominated)
+ },
+ openSerialPortDialog: async function () {
+ await this.openSerialPort()
+ },
+ openSerialPort: async function (config = {baudRate: 9600}) {
+ if (!this.checkSerialPortSupported()) return false
+ if (this.selectedPort) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Already connected. Disconnect first!',
+ timeout: 10000
+ })
+ return true
+ }
+
+ try {
+ navigator.serial.addEventListener('connect', event => {
+ console.log('### navigator.serial event: connected!', event)
+ })
+
+ navigator.serial.addEventListener('disconnect', () => {
+ console.log('### navigator.serial event: disconnected!', event)
+ this.hww.authenticated = false
+ this.$q.notify({
+ type: 'warning',
+ message: 'Disconnected from Serial Port!',
+ timeout: 10000
+ })
+ })
+ this.selectedPort = await navigator.serial.requestPort()
+ // Wait for the serial port to open.
+ await this.selectedPort.open(config)
+ this.startSerialPortReading()
+
+ const textEncoder = new TextEncoderStream()
+ this.writableStreamClosed = textEncoder.readable.pipeTo(
+ this.selectedPort.writable
+ )
+
+ this.writer = textEncoder.writable.getWriter()
+ return true
+ } catch (error) {
+ this.selectedPort = null
+ this.$q.notify({
+ type: 'warning',
+ message: 'Cannot open serial port!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ return false
+ }
+ },
+ openSerialPortConfig: async function () {
+ this.hww.showConfigDialog = true
+ },
+ closeSerialPort: async function () {
+ try {
+ if (this.writer) this.writer.close()
+ if (this.writableStreamClosed) await this.writableStreamClosed
+ if (this.reader) this.reader.cancel()
+ if (this.readableStreamClosed)
+ await this.readableStreamClosed.catch(() => {
+ /* Ignore the error */
+ })
+ if (this.selectedPort) await this.selectedPort.close()
+ this.selectedPort = null
+ this.$q.notify({
+ type: 'positive',
+ message: 'Serial port disconnected!',
+ timeout: 5000
+ })
+ } catch (error) {
+ this.selectedPort = null
+ this.$q.notify({
+ type: 'warning',
+ message: 'Cannot close serial port!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ } finally {
+ this.hww.authenticated = false
+ }
+ },
+
+ isConnected: function () {
+ return !!this.selectedPort
+ },
+ isAuthenticated: function () {
+ return this.hww.authenticated
+ },
+ isAuthenticating: function () {
+ if (this.isAuthenticated()) return false
+ return new Promise(resolve => {
+ this.loginResolve = resolve
+ })
+ },
+
+ isSendingPsbt: async function () {
+ if (!this.hww.sendingPsbt) return false
+ return new Promise(resolve => {
+ this.psbtSentResolve = resolve
+ })
+ },
+
+ isFetchingXpub: async function () {
+ return new Promise(resolve => {
+ this.xpubResolve = resolve
+ })
+ },
+
+ checkSerialPortSupported: function () {
+ if (!navigator.serial) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Serial port communication not supported!',
+ caption:
+ 'Make sure your browser supports Serial Port and that you are using HTTPS.',
+ timeout: 10000
+ })
+ return false
+ }
+ return true
+ },
+ startSerialPortReading: async function () {
+ const port = this.selectedPort
+
+ while (port && port.readable) {
+ const textDecoder = new TextDecoderStream()
+ this.readableStreamClosed = port.readable.pipeTo(textDecoder.writable)
+ this.reader = textDecoder.readable.getReader()
+ const readStringUntil = readFromSerialPort(this.reader)
+
+ try {
+ while (true) {
+ const {value, done} = await readStringUntil('\n')
+ if (value) {
+ this.handleSerialPortResponse(value)
+ this.updateSerialPortConsole(value)
+ }
+ if (done) return
+ }
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Serial port communication error!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ }
+ },
+ handleSerialPortResponse: function (value) {
+ const command = value.split(' ')[0]
+ const commandData = value.substring(command.length).trim()
+
+ switch (command) {
+ case COMMAND_SIGN_PSBT:
+ this.handleSignResponse(commandData)
+ break
+ case COMMAND_PASSWORD:
+ this.handleLoginResponse(commandData)
+ break
+ case COMMAND_PASSWORD_CLEAR:
+ this.handleLogoutResponse(commandData)
+ break
+ case COMMAND_SEND_PSBT:
+ this.handleSendPsbtResponse(commandData)
+ break
+ case COMMAND_WIPE:
+ this.handleWipeResponse(commandData)
+ break
+ case COMMAND_XPUB:
+ this.handleXpubResponse(commandData)
+ break
+ default:
+ console.log('### console', value)
+ }
+ },
+ updateSerialPortConsole: function (value) {
+ this.receivedData += value + '\n'
+ const textArea = document.getElementById('serial-port-console')
+ if (textArea) textArea.scrollTop = textArea.scrollHeight
+ },
+ hwwShowPasswordDialog: async function () {
+ try {
+ this.hww.showPasswordDialog = true
+ await this.writer.write(COMMAND_PASSWORD + '\n')
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to connect to Hardware Wallet!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ hwwShowWipeDialog: async function () {
+ try {
+ this.hww.showWipeDialog = true
+ await this.writer.write(COMMAND_WIPE + '\n')
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to connect to Hardware Wallet!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ hwwShowRestoreDialog: async function () {
+ try {
+ this.hww.showRestoreDialog = true
+ await this.writer.write(COMMAND_WIPE + '\n')
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to connect to Hardware Wallet!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ hwwConfirmNext: async function () {
+ this.hww.confirm.outputIndex += 1
+ if (this.hww.confirm.outputIndex >= this.tx.outputs.length) {
+ this.hww.confirm.showFee = true
+ }
+ await this.writer.write(COMMAND_CONFIRM_NEXT + '\n')
+ },
+ cancelOperation: async function () {
+ try {
+ await this.writer.write(COMMAND_CANCEL + '\n')
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to send cancel!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ hwwConfigAndConnect: async function () {
+ this.hww.showConfigDialog = false
+ const config = this.$refs.serialPortConfig.getConfig()
+ await this.openSerialPort(config)
+ return true
+ },
+ hwwLogin: async function () {
+ try {
+ await this.writer.write(
+ COMMAND_PASSWORD + ' ' + this.hww.password + '\n'
+ )
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to send password to Hardware Wallet!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ } finally {
+ this.hww.showPasswordDialog = false
+ this.hww.password = null
+ this.hww.showPassword = false
+ }
+ },
+ handleLoginResponse: function (res = '') {
+ this.hww.authenticated = res.trim() === '1'
+ if (this.loginResolve) {
+ this.loginResolve(this.hww.authenticated)
+ }
+
+ if (this.hww.authenticated) {
+ this.$q.notify({
+ type: 'positive',
+ message: 'Login successfull!',
+ timeout: 10000
+ })
+ } else {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Wrong password, try again!',
+ timeout: 10000
+ })
+ }
+ },
+ hwwLogout: async function () {
+ try {
+ await this.writer.write(COMMAND_PASSWORD_CLEAR + '\n')
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to logout from Hardware Wallet!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ handleLogoutResponse: function (res = '') {
+ this.hww.authenticated = !(res.trim() === '1')
+ if (this.hww.authenticated) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to logout from Hardware Wallet',
+ timeout: 10000
+ })
+ }
+ },
+ hwwSendPsbt: async function (psbtBase64, tx) {
+ try {
+ this.tx = tx
+ this.hww.sendingPsbt = true
+ await this.writer.write(
+ COMMAND_SEND_PSBT + ' ' + this.network + ' ' + psbtBase64 + '\n'
+ )
+ this.$q.notify({
+ type: 'positive',
+ message: 'Data sent to serial port device!',
+ timeout: 5000
+ })
+ } catch (error) {
+ this.hww.sendingPsbt = false
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to send data to serial port!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ handleSendPsbtResponse: function (res = '') {
+ try {
+ const psbtOK = res.trim() === '1'
+ if (!psbtOK) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to send PSBT!',
+ caption: `${res}`,
+ timeout: 10000
+ })
+ return
+ }
+ this.hww.confirm.outputIndex = 0
+ this.hww.showConfirmationDialog = true
+ this.hww.confirm = {
+ outputIndex: 0,
+ showFee: false
+ }
+ this.hww.sendingPsbt = false
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to send PSBT!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ } finally {
+ this.psbtSentResolve()
+ }
+ },
+ hwwSignPsbt: async function () {
+ try {
+ this.hww.showConfirmationDialog = false
+ this.hww.signingPsbt = true
+ await this.writer.write(COMMAND_SIGN_PSBT + '\n')
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to sign PSBT!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ handleSignResponse: function (res = '') {
+ this.hww.signingPsbt = false
+ const [count, psbt] = res.trim().split(' ')
+ if (!psbt || !count || count.trim() === '0') {
+ this.$q.notify({
+ type: 'warning',
+ message: 'No input signed!',
+ caption: 'Are you using the right seed?',
+ timeout: 10000
+ })
+ return
+ }
+ this.updateSignedPsbt(psbt)
+ this.$q.notify({
+ type: 'positive',
+ message: 'Transaction Signed',
+ message: `Inputs signed: ${count}`,
+ timeout: 10000
+ })
+ },
+ hwwHelp: async function () {
+ try {
+ await this.writer.write(COMMAND_HELP + '\n')
+ this.$q.notify({
+ type: 'positive',
+ message: 'Check display or console for details!',
+ timeout: 5000
+ })
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to ask for help!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ hwwWipe: async function () {
+ try {
+ this.hww.showWipeDialog = false
+ await this.writer.write(COMMAND_WIPE + ' ' + this.hww.password + '\n')
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to ask for help!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ } finally {
+ this.hww.password = null
+ this.hww.confirmedPassword = null
+ this.hww.showPassword = false
+ }
+ },
+ handleWipeResponse: function (res = '') {
+ const wiped = res.trim() === '1'
+ if (wiped) {
+ this.$q.notify({
+ type: 'positive',
+ message: 'Wallet wiped!',
+ timeout: 10000
+ })
+ } else {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to wipe wallet!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ hwwXpub: async function (path) {
+ try {
+ console.log(
+ '### hwwXpub',
+ COMMAND_XPUB + ' ' + this.network + ' ' + path
+ )
+ await this.writer.write(
+ COMMAND_XPUB + ' ' + this.network + ' ' + path + '\n'
+ )
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to fetch XPub!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ handleXpubResponse: function (res = '') {
+ const args = res.trim().split(' ')
+ if (args.length < 3 || args[0].trim() !== '1') {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to fetch XPub!',
+ caption: `${res}`,
+ timeout: 10000
+ })
+ this.xpubResolve({})
+ return
+ }
+ const xpub = args[1].trim()
+ const fingerprint = args[2].trim()
+ this.xpubResolve({xpub, fingerprint})
+ },
+ hwwShowSeed: async function () {
+ try {
+ this.hww.showSeedDialog = true
+ this.hww.seedWordPosition = 1
+ await this.writer.write(
+ COMMAND_SEED + ' ' + this.hww.seedWordPosition + '\n'
+ )
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to show seed!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ showNextSeedWord: async function () {
+ this.hww.seedWordPosition++
+ await this.writer.write(
+ COMMAND_SEED + ' ' + this.hww.seedWordPosition + '\n'
+ )
+ },
+ showPrevSeedWord: async function () {
+ this.hww.seedWordPosition = Math.max(1, this.hww.seedWordPosition - 1)
+ console.log('### this.hww.seedWordPosition', this.hww.seedWordPosition)
+ await this.writer.write(
+ COMMAND_SEED + ' ' + this.hww.seedWordPosition + '\n'
+ )
+ },
+ handleShowSeedResponse: function (res = '') {
+ const args = res.trim().split(' ')
+ if (args.length < 2 || args[0].trim() !== '1') {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to show seed!',
+ caption: `${res}`,
+ timeout: 10000
+ })
+ return
+ }
+ },
+ hwwRestore: async function () {
+ try {
+ await this.writer.write(
+ COMMAND_RESTORE + ' ' + this.hww.mnemonic + '\n'
+ )
+ await this.writer.write(
+ COMMAND_PASSWORD + ' ' + this.hww.password + '\n'
+ )
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to restore from seed!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ } finally {
+ this.hww.showRestoreDialog = false
+ this.hww.mnemonic = null
+ this.hww.showMnemonic = false
+ this.hww.password = null
+ this.hww.confirmedPassword = null
+ this.hww.showPassword = false
+ }
+ },
+
+ updateSignedPsbt: async function (value) {
+ this.$emit('signed:psbt', value)
+ }
+ },
+ created: async function () {}
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/utxo-list/utxo-list.html b/lnbits/extensions/watchonly/static/components/utxo-list/utxo-list.html
new file mode 100644
index 000000000..a55b99e96
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/utxo-list/utxo-list.html
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Confirmed
+
+
+ Pending
+
+
+
+
+
+
+
+
+ {{satBtc(props.row.amount)}}
+
+
+ {{ props.row.date }}
+
+ {{getWalletName(props.row.wallet)}}
+
+
+
+
+
+
+
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/utxo-list/utxo-list.js b/lnbits/extensions/watchonly/static/components/utxo-list/utxo-list.js
new file mode 100644
index 000000000..6741ed94e
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/utxo-list/utxo-list.js
@@ -0,0 +1,148 @@
+async function utxoList(path) {
+ const template = await loadTemplateAsync(path)
+ Vue.component('utxo-list', {
+ name: 'utxo-list',
+ template,
+
+ props: [
+ 'utxos',
+ 'accounts',
+ 'selectable',
+ 'payed-amount',
+ 'sats-denominated',
+ 'mempool-endpoint',
+ 'filter'
+ ],
+
+ data: function () {
+ return {
+ utxosTable: {
+ columns: [
+ {
+ name: 'expand',
+ align: 'left',
+ label: ''
+ },
+ {
+ name: 'selected',
+ align: 'left',
+ label: '',
+ selectable: true
+ },
+ {
+ name: 'status',
+ align: 'center',
+ label: 'Status',
+ sortable: true
+ },
+ {
+ name: 'address',
+ align: 'left',
+ label: 'Address',
+ field: 'address',
+ sortable: true
+ },
+ {
+ name: 'amount',
+ align: 'left',
+ label: 'Amount',
+ field: 'amount',
+ sortable: true
+ },
+ {
+ name: 'date',
+ align: 'left',
+ label: 'Date',
+ field: 'date',
+ sortable: true
+ },
+ {
+ name: 'wallet',
+ align: 'left',
+ label: 'Account',
+ field: 'wallet',
+ sortable: true
+ }
+ ],
+ pagination: {
+ rowsPerPage: 10
+ }
+ },
+ utxoSelectionModes: [
+ 'Manual',
+ 'Random',
+ 'Select All',
+ 'Smaller Inputs First',
+ 'Larger Inputs First'
+ ],
+ utxoSelectionMode: 'Random',
+ utxoSelectAmount: 0
+ }
+ },
+
+ computed: {
+ columns: function () {
+ return this.utxosTable.columns.filter(c =>
+ c.selectable ? this.selectable : true
+ )
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.satsDenominated)
+ },
+ getWalletName: function (walletId) {
+ const wallet = (this.accounts || []).find(wl => wl.id === walletId)
+ return wallet ? wallet.title : 'unknown'
+ },
+ getTotalSelectedUtxoAmount: function () {
+ const total = (this.utxos || [])
+ .filter(u => u.selected)
+ .reduce((t, a) => t + (a.amount || 0), 0)
+ return total
+ },
+ refreshUtxoSelection: function (totalPayedAmount) {
+ this.utxoSelectAmount = totalPayedAmount
+ this.applyUtxoSelectionMode()
+ },
+ updateUtxoSelection: function () {
+ this.utxoSelectAmount = this.payedAmount
+ this.applyUtxoSelectionMode()
+ },
+ applyUtxoSelectionMode: function () {
+ const mode = this.utxoSelectionMode
+ const isSelectAll = mode === 'Select All'
+ if (isSelectAll) {
+ this.utxos.forEach(u => (u.selected = true))
+ return
+ }
+
+ const isManual = mode === 'Manual'
+ if (isManual || !this.utxoSelectAmount) return
+
+ this.utxos.forEach(u => (u.selected = false))
+
+ const isSmallerFirst = mode === 'Smaller Inputs First'
+ const isLargerFirst = mode === 'Larger Inputs First'
+ let selectedUtxos = this.utxos.slice()
+ if (isSmallerFirst || isLargerFirst) {
+ const sortFn = isSmallerFirst
+ ? (a, b) => a.amount - b.amount
+ : (a, b) => b.amount - a.amount
+ selectedUtxos.sort(sortFn)
+ } else {
+ // default to random order
+ selectedUtxos = _.shuffle(selectedUtxos)
+ }
+ selectedUtxos.reduce((total, utxo) => {
+ utxo.selected = total < this.utxoSelectAmount
+ total += utxo.amount
+ return total
+ }, 0)
+ }
+ },
+
+ created: async function () {}
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/wallet-config/wallet-config.html b/lnbits/extensions/watchonly/static/components/wallet-config/wallet-config.html
new file mode 100644
index 000000000..61a353625
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/wallet-config/wallet-config.html
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Update
+ Cancel
+
+
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/wallet-config/wallet-config.js b/lnbits/extensions/watchonly/static/components/wallet-config/wallet-config.js
new file mode 100644
index 000000000..447dc65c7
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/wallet-config/wallet-config.js
@@ -0,0 +1,67 @@
+async function walletConfig(path) {
+ const t = await loadTemplateAsync(path)
+ Vue.component('wallet-config', {
+ name: 'wallet-config',
+ template: t,
+
+ props: ['total', 'config-data', 'adminkey'],
+ data: function () {
+ return {
+ networOptions: ['Mainnet', 'Testnet'],
+ internalConfig: {},
+ show: false
+ }
+ },
+
+ computed: {
+ config: {
+ get() {
+ return this.internalConfig
+ },
+ set(value) {
+ value.isLoaded = true
+ this.internalConfig = JSON.parse(JSON.stringify(value))
+ this.$emit(
+ 'update:config-data',
+ JSON.parse(JSON.stringify(this.internalConfig))
+ )
+ }
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.config.sats_denominated)
+ },
+ updateConfig: async function () {
+ try {
+ const {data} = await LNbits.api.request(
+ 'PUT',
+ '/watchonly/api/v1/config',
+ this.adminkey,
+ this.config
+ )
+ this.show = false
+ this.config = data
+ } catch (error) {
+ LNbits.utils.notifyApiError(error)
+ }
+ },
+ getConfig: async function () {
+ try {
+ const {data} = await LNbits.api.request(
+ 'GET',
+ '/watchonly/api/v1/config',
+ this.adminkey
+ )
+ this.config = data
+ } catch (error) {
+ LNbits.utils.notifyApiError(error)
+ }
+ }
+ },
+ created: async function () {
+ await this.getConfig()
+ }
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/components/wallet-list/wallet-list.html b/lnbits/extensions/watchonly/static/components/wallet-list/wallet-list.html
new file mode 100644
index 000000000..ccd6f678f
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/wallet-list/wallet-list.html
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+ New Account
+ Enter account Xpub or Descriptor
+
+
+
+
+ From Hardware Device
+
+ Get Xpub from a Hardware Device
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ col.label }}
+
+
+
+
+
+
+
+
+
+
+
+ New Receive Address
+
+
+
+
+ {{props.row.title}}
+
+
+ {{getAmmountForWallet(props.row.id)}}
+
+
+ {{props.row.type}}
+
+
+ {{props.row.id}}
+
+
+
+
+
+
+
+ New Receive Address
+
+
+ {{getAccountDescription(props.row.type)}}
+
+
+
+
+
+
Master Pubkey:
+
+
+
+
+
+
+
Last Address Index:
+
+ {{props.row.address_no}}
+ none
+
+
+
+
+
Fingerprint:
+
{{props.row.fingerprint}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+
+
+
diff --git a/lnbits/extensions/watchonly/static/components/wallet-list/wallet-list.js b/lnbits/extensions/watchonly/static/components/wallet-list/wallet-list.js
new file mode 100644
index 000000000..adc82b3e8
--- /dev/null
+++ b/lnbits/extensions/watchonly/static/components/wallet-list/wallet-list.js
@@ -0,0 +1,290 @@
+async function walletList(path) {
+ const template = await loadTemplateAsync(path)
+ Vue.component('wallet-list', {
+ name: 'wallet-list',
+ template,
+
+ props: [
+ 'adminkey',
+ 'inkey',
+ 'sats-denominated',
+ 'addresses',
+ 'network',
+ 'serial-signer-ref'
+ ],
+ data: function () {
+ return {
+ walletAccounts: [],
+ address: {},
+ formDialog: {
+ show: false,
+
+ addressType: {
+ label: 'Segwit (P2WPKH)',
+ id: 'wpkh',
+ pathMainnet: "m/84'/0'/0'",
+ pathTestnet: "m/84'/1'/0'"
+ },
+ useSerialPort: false,
+ data: {
+ title: '',
+ masterpub: ''
+ }
+ },
+ accountPath: '',
+ filter: '',
+ showCreating: false,
+ addressTypeOptions: [
+ {
+ label: 'Legacy (P2PKH)',
+ id: 'pkh',
+ pathMainnet: "m/44'/0'/0'",
+ pathTestnet: "m/44'/1'/0'"
+ },
+ {
+ label: 'Segwit (P2WPKH)',
+ id: 'wpkh',
+ pathMainnet: "m/84'/0'/0'",
+ pathTestnet: "m/84'/1'/0'"
+ },
+ {
+ label: 'Wrapped Segwit (P2SH-P2WPKH)',
+ id: 'sh',
+ pathMainnet: "m/49'/0'/0'",
+ pathTestnet: "m/49'/1'/0'"
+ },
+ {
+ label: 'Taproot (P2TR)',
+ id: 'tr',
+ pathMainnet: "m/86'/0'/0'",
+ pathTestnet: "m/86'/1'/0'"
+ }
+ ],
+
+ walletsTable: {
+ columns: [
+ {
+ name: 'new',
+ align: 'left',
+ label: ''
+ },
+ {
+ name: 'title',
+ align: 'left',
+ label: 'Title',
+ field: 'title'
+ },
+ {
+ name: 'amount',
+ align: 'left',
+ label: 'Amount'
+ },
+ {
+ name: 'type',
+ align: 'left',
+ label: 'Type',
+ field: 'type'
+ },
+ {name: 'id', align: 'left', label: 'ID', field: 'id'}
+ ],
+ pagination: {
+ rowsPerPage: 10
+ },
+ filter: ''
+ }
+ }
+ },
+ watch: {
+ immediate: true,
+ async network(newNet, oldNet) {
+ if (newNet !== oldNet) {
+ await this.refreshWalletAccounts()
+ }
+ }
+ },
+
+ methods: {
+ satBtc(val, showUnit = true) {
+ return satOrBtc(val, showUnit, this.satsDenominated)
+ },
+
+ addWalletAccount: async function () {
+ this.showCreating = true
+ const data = _.omit(this.formDialog.data, 'wallet')
+ data.network = this.network
+ await this.createWalletAccount(data)
+ this.showCreating = false
+ },
+ createWalletAccount: async function (data) {
+ try {
+ if (this.formDialog.useSerialPort) {
+ const {xpub, fingerprint} = await this.fetchXpubFromHww()
+ if (!xpub) return
+ const path = this.accountPath.substring(2)
+ const outputType = this.formDialog.addressType.id
+ if (outputType === 'sh') {
+ data.masterpub = `${outputType}(wpkh([${fingerprint}/${path}]${xpub}/{0,1}/*))`
+ } else {
+ data.masterpub = `${outputType}([${fingerprint}/${path}]${xpub}/{0,1}/*)`
+ }
+ }
+ const response = await LNbits.api.request(
+ 'POST',
+ '/watchonly/api/v1/wallet',
+ this.adminkey,
+ data
+ )
+ this.walletAccounts.push(mapWalletAccount(response.data))
+ this.formDialog.show = false
+
+ await this.refreshWalletAccounts()
+ } catch (error) {
+ LNbits.utils.notifyApiError(error)
+ }
+ },
+ fetchXpubFromHww: async function () {
+ const error = findAccountPathIssues(this.accountPath)
+ if (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Invalid derivation path.',
+ caption: error,
+ timeout: 10000
+ })
+ return
+ }
+ await this.serialSignerRef.hwwXpub(this.accountPath)
+ return await this.serialSignerRef.isFetchingXpub()
+ },
+ deleteWalletAccount: function (walletAccountId) {
+ LNbits.utils
+ .confirmDialog(
+ 'Are you sure you want to delete this watch only wallet?'
+ )
+ .onOk(async () => {
+ try {
+ await LNbits.api.request(
+ 'DELETE',
+ '/watchonly/api/v1/wallet/' + walletAccountId,
+ this.adminkey
+ )
+ this.walletAccounts = _.reject(this.walletAccounts, function (
+ obj
+ ) {
+ return obj.id === walletAccountId
+ })
+ await this.refreshWalletAccounts()
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message:
+ 'Error while deleting wallet account. Please try again.',
+ timeout: 10000
+ })
+ }
+ })
+ },
+
+ getWatchOnlyWallets: async function () {
+ try {
+ const {data} = await LNbits.api.request(
+ 'GET',
+ `/watchonly/api/v1/wallet?network=${this.network}`,
+ this.inkey
+ )
+ return data
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to fetch wallets.',
+ timeout: 10000
+ })
+ LNbits.utils.notifyApiError(error)
+ }
+ return []
+ },
+ refreshWalletAccounts: async function () {
+ this.walletAccounts = []
+ const wallets = await this.getWatchOnlyWallets()
+ this.walletAccounts = wallets.map(w => mapWalletAccount(w))
+ this.$emit('accounts-update', this.walletAccounts)
+ },
+ getAmmountForWallet: function (walletId) {
+ const amount = this.addresses
+ .filter(a => a.wallet === walletId)
+ .reduce((t, a) => t + a.amount || 0, 0)
+ return this.satBtc(amount)
+ },
+ closeFormDialog: function () {
+ this.formDialog.data = {
+ is_unique: false
+ }
+ },
+ getAccountDescription: function (accountType) {
+ return getAccountDescription(accountType)
+ },
+ openGetFreshAddressDialog: async function (walletId) {
+ const {data} = await LNbits.api.request(
+ 'GET',
+ `/watchonly/api/v1/address/${walletId}`,
+ this.inkey
+ )
+ const addressData = mapAddressesData(data)
+
+ addressData.note = `Shared on ${currentDateTime()}`
+ const lastAcctiveAddress =
+ this.addresses
+ .filter(
+ a =>
+ a.wallet === addressData.wallet && !a.isChange && a.hasActivity
+ )
+ .pop() || {}
+ addressData.gapLimitExceeded =
+ !addressData.isChange &&
+ addressData.addressIndex >
+ lastAcctiveAddress.addressIndex + DEFAULT_RECEIVE_GAP_LIMIT
+
+ const wallet = this.walletAccounts.find(w => w.id === walletId) || {}
+ wallet.address_no = addressData.addressIndex
+ this.$emit('new-receive-address', addressData)
+ },
+ showAddAccountDialog: function () {
+ this.formDialog.show = true
+ this.formDialog.useSerialPort = false
+ },
+ getXpubFromDevice: async function () {
+ try {
+ if (!this.serialSignerRef.isConnected()) {
+ const portOpen = await this.serialSignerRef.openSerialPort()
+ if (!portOpen) return
+ }
+ if (!this.serialSignerRef.isAuthenticated()) {
+ await this.serialSignerRef.hwwShowPasswordDialog()
+ const authenticated = await this.serialSignerRef.isAuthenticating()
+ if (!authenticated) return
+ }
+ this.formDialog.show = true
+ this.formDialog.useSerialPort = true
+ } catch (error) {
+ this.$q.notify({
+ type: 'warning',
+ message: 'Cannot fetch Xpub!',
+ caption: `${error}`,
+ timeout: 10000
+ })
+ }
+ },
+ handleAddressTypeChanged: function (value = {}) {
+ const addressType =
+ this.addressTypeOptions.find(t => t.id === value.id) || {}
+ this.accountPath = addressType[`path${this.network}`]
+ }
+ },
+ created: async function () {
+ if (this.inkey) {
+ await this.refreshWalletAccounts()
+ this.handleAddressTypeChanged(this.addressTypeOptions[1])
+ }
+ }
+ })
+}
diff --git a/lnbits/extensions/watchonly/static/js/index.js b/lnbits/extensions/watchonly/static/js/index.js
index 5eee21761..68204aca4 100644
--- a/lnbits/extensions/watchonly/static/js/index.js
+++ b/lnbits/extensions/watchonly/static/js/index.js
@@ -1,735 +1,399 @@
-Vue.component(VueQrcode.name, VueQrcode)
+const watchOnly = async () => {
+ Vue.component(VueQrcode.name, VueQrcode)
-Vue.filter('reverse', function (value) {
- // slice to make a copy of array, then reverse the copy
- return value.slice().reverse()
-})
+ await walletConfig('static/components/wallet-config/wallet-config.html')
+ await walletList('static/components/wallet-list/wallet-list.html')
+ await addressList('static/components/address-list/address-list.html')
+ await history('static/components/history/history.html')
+ await utxoList('static/components/utxo-list/utxo-list.html')
+ await feeRate('static/components/fee-rate/fee-rate.html')
+ await sendTo('static/components/send-to/send-to.html')
+ await payment('static/components/payment/payment.html')
+ await serialSigner('static/components/serial-signer/serial-signer.html')
+ await serialPortConfig(
+ 'static/components/serial-port-config/serial-port-config.html'
+ )
-new Vue({
- el: '#vue',
- mixins: [windowMixin],
- data: function () {
- return {
- DUST_LIMIT: 546,
- filter: '',
+ Vue.filter('reverse', function (value) {
+ // slice to make a copy of array, then reverse the copy
+ return value.slice().reverse()
+ })
- scan: {
- scanning: false,
- scanCount: 0,
- scanIndex: 0
- },
-
- currentAddress: null,
-
- tab: 'addresses',
-
- config: {
- data: {
- mempool_endpoint: 'https://mempool.space',
- receive_gap_limit: 20,
- change_gap_limit: 5
+ new Vue({
+ el: '#vue',
+ mixins: [windowMixin],
+ data: function () {
+ return {
+ scan: {
+ scanning: false,
+ scanCount: 0,
+ scanIndex: 0
},
- DEFAULT_RECEIVE_GAP_LIMIT: 20,
- show: false
- },
- formDialog: {
- show: false,
- data: {}
- },
+ currentAddress: null,
- qrCodeDialog: {
- show: false,
- data: null
- },
- ...tables,
- ...tableData
- }
- },
+ tab: 'addresses',
- methods: {
- //################### CONFIG ###################
- getConfig: async function () {
- try {
- const {data} = await LNbits.api.request(
- 'GET',
- '/watchonly/api/v1/config',
- this.g.user.wallets[0].adminkey
- )
- this.config.data = data
- } catch (error) {
- LNbits.utils.notifyApiError(error)
+ config: {sats_denominated: true},
+
+ qrCodeDialog: {
+ show: false,
+ data: null
+ },
+ ...tables,
+ ...tableData,
+
+ walletAccounts: [],
+ addresses: [],
+ history: [],
+ historyFilter: '',
+
+ showAddress: false,
+ addressNote: '',
+ showPayment: false,
+ fetchedUtxos: false,
+ utxosFilter: '',
+ network: null
}
},
- updateConfig: async function () {
- const wallet = this.g.user.wallets[0]
- try {
- await LNbits.api.request(
- 'PUT',
- '/watchonly/api/v1/config',
- wallet.adminkey,
- this.config.data
- )
- this.config.show = false
- } catch (error) {
- LNbits.utils.notifyApiError(error)
- }
- },
-
- //################### WALLETS ###################
- getWalletName: function (walletId) {
- const wallet = this.walletAccounts.find(wl => wl.id === walletId)
- return wallet ? wallet.title : 'unknown'
- },
- addWalletAccount: async function () {
- const wallet = this.g.user.wallets[0]
- const data = _.omit(this.formDialog.data, 'wallet')
- await this.createWalletAccount(wallet, data)
- },
- createWalletAccount: async function (wallet, data) {
- try {
- const response = await LNbits.api.request(
- 'POST',
- '/watchonly/api/v1/wallet',
- wallet.adminkey,
- data
- )
- this.walletAccounts.push(mapWalletAccount(response.data))
- this.formDialog.show = false
-
- await this.refreshWalletAccounts()
- await this.refreshAddresses()
-
- if (!this.payment.changeWallett) {
- this.payment.changeWallet = this.walletAccounts[0]
- this.selectChangeAddress(this.payment.changeWallet)
+ computed: {
+ mempoolHostname: function () {
+ if (!this.config.isLoaded) return
+ let hostname = new URL(this.config.mempool_endpoint).hostname
+ if (this.config.network === 'Testnet') {
+ hostname += '/testnet'
}
- } catch (error) {
- LNbits.utils.notifyApiError(error)
+ return hostname
}
},
- deleteWalletAccount: function (walletAccountId) {
- LNbits.utils
- .confirmDialog(
- 'Are you sure you want to delete this watch only wallet?'
- )
- .onOk(async () => {
- try {
- await LNbits.api.request(
- 'DELETE',
- '/watchonly/api/v1/wallet/' + walletAccountId,
- this.g.user.wallets[0].adminkey
+
+ methods: {
+ updateAmountForAddress: async function (addressData, amount = 0) {
+ try {
+ const wallet = this.g.user.wallets[0]
+ addressData.amount = amount
+ if (!addressData.isChange) {
+ const addressWallet = this.walletAccounts.find(
+ w => w.id === addressData.wallet
)
- this.walletAccounts = _.reject(this.walletAccounts, function (obj) {
- return obj.id === walletAccountId
- })
- await this.refreshWalletAccounts()
- await this.refreshAddresses()
if (
- this.payment.changeWallet &&
- this.payment.changeWallet.id === walletAccountId
+ addressWallet &&
+ addressWallet.address_no < addressData.addressIndex
) {
- this.payment.changeWallet = this.walletAccounts[0]
- this.selectChangeAddress(this.payment.changeWallet)
+ addressWallet.address_no = addressData.addressIndex
}
- await this.scanAddressWithAmount()
- } catch (error) {
+ }
+
+ // todo: account deleted
+ await LNbits.api.request(
+ 'PUT',
+ `/watchonly/api/v1/address/${addressData.id}`,
+ wallet.adminkey,
+ {amount}
+ )
+ } catch (err) {
+ addressData.error = 'Failed to refresh amount for address'
+ this.$q.notify({
+ type: 'warning',
+ message: `Failed to refresh amount for address ${addressData.address}`,
+ timeout: 10000
+ })
+ LNbits.utils.notifyApiError(err)
+ }
+ },
+ updateNoteForAddress: async function ({addressId, note}) {
+ try {
+ const wallet = this.g.user.wallets[0]
+ await LNbits.api.request(
+ 'PUT',
+ `/watchonly/api/v1/address/${addressId}`,
+ wallet.adminkey,
+ {note}
+ )
+ const updatedAddress =
+ this.addresses.find(a => a.id === addressId) || {}
+ updatedAddress.note = note
+ } catch (err) {
+ LNbits.utils.notifyApiError(err)
+ }
+ },
+
+ //################### ADDRESS HISTORY ###################
+ addressHistoryFromTxs: function (addressData, txs) {
+ const addressHistory = []
+ txs.forEach(tx => {
+ const sent = tx.vin
+ .filter(
+ vin => vin.prevout.scriptpubkey_address === addressData.address
+ )
+ .map(vin => mapInputToSentHistory(tx, addressData, vin))
+
+ const received = tx.vout
+ .filter(vout => vout.scriptpubkey_address === addressData.address)
+ .map(vout => mapOutputToReceiveHistory(tx, addressData, vout))
+ addressHistory.push(...sent, ...received)
+ })
+ return addressHistory
+ },
+
+ markSameTxAddressHistory: function () {
+ this.history
+ .filter(s => s.sent)
+ .forEach((el, i, arr) => {
+ if (el.isSubItem) return
+
+ const sameTxItems = arr.slice(i + 1).filter(e => e.txId === el.txId)
+ if (!sameTxItems.length) return
+ sameTxItems.forEach(e => {
+ e.isSubItem = true
+ })
+
+ el.totalAmount =
+ el.amount + sameTxItems.reduce((t, e) => (t += e.amount || 0), 0)
+ el.sameTxItems = sameTxItems
+ })
+ },
+
+ //################### PAYMENT ###################
+
+ initPaymentData: async function () {
+ if (!this.payment.show) return
+ await this.refreshAddresses()
+ },
+
+ goToPaymentView: async function () {
+ this.showPayment = true
+ await this.initPaymentData()
+ },
+
+ //################### PSBT ###################
+
+ updateSignedPsbt: async function (psbtBase64) {
+ this.$refs.paymentRef.updateSignedPsbt(psbtBase64)
+ },
+
+ //################### SERIAL PORT ###################
+
+ //################### HARDWARE WALLET ###################
+
+ //################### UTXOs ###################
+ scanAllAddresses: async function () {
+ await this.refreshAddresses()
+ this.history = []
+ let addresses = this.addresses
+ this.utxos.data = []
+ this.utxos.total = 0
+ // Loop while new funds are found on the gap adresses.
+ // Use 1000 limit as a safety check (scan 20 000 addresses max)
+ for (let i = 0; i < 1000 && addresses.length; i++) {
+ await this.updateUtxosForAddresses(addresses)
+ const oldAddresses = this.addresses.slice()
+ await this.refreshAddresses()
+ const newAddresses = this.addresses.slice()
+ // check if gap addresses have been extended
+ addresses = newAddresses.filter(
+ newAddr => !oldAddresses.find(oldAddr => oldAddr.id === newAddr.id)
+ )
+ if (addresses.length) {
this.$q.notify({
- type: 'warning',
- message: 'Error while deleting wallet account. Please try again.',
+ type: 'positive',
+ message: 'Funds found! Scanning for more...',
timeout: 10000
})
}
- })
- },
- getAddressesForWallet: async function (walletId) {
- try {
- const {data} = await LNbits.api.request(
- 'GET',
- '/watchonly/api/v1/addresses/' + walletId,
- this.g.user.wallets[0].inkey
- )
- return data.map(mapAddressesData)
- } catch (err) {
- this.$q.notify({
- type: 'warning',
- message: `Failed to fetch addresses for wallet with id ${walletId}.`,
- timeout: 10000
- })
- LNbits.utils.notifyApiError(err)
- }
- return []
- },
- getWatchOnlyWallets: async function () {
- try {
- const {data} = await LNbits.api.request(
- 'GET',
- '/watchonly/api/v1/wallet',
- this.g.user.wallets[0].inkey
- )
- return data
- } catch (error) {
- this.$q.notify({
- type: 'warning',
- message: 'Failed to fetch wallets.',
- timeout: 10000
- })
- LNbits.utils.notifyApiError(error)
- }
- return []
- },
- refreshWalletAccounts: async function () {
- const wallets = await this.getWatchOnlyWallets()
- this.walletAccounts = wallets.map(w => mapWalletAccount(w))
- },
- getAmmountForWallet: function (walletId) {
- const amount = this.addresses.data
- .filter(a => a.wallet === walletId)
- .reduce((t, a) => t + a.amount || 0, 0)
- return this.satBtc(amount)
- },
-
- //################### ADDRESSES ###################
-
- refreshAddresses: async function () {
- const wallets = await this.getWatchOnlyWallets()
- this.addresses.data = []
- for (const {id, type} of wallets) {
- const newAddresses = await this.getAddressesForWallet(id)
- const uniqueAddresses = newAddresses.filter(
- newAddr =>
- !this.addresses.data.find(a => a.address === newAddr.address)
- )
-
- const lastAcctiveAddress =
- uniqueAddresses.filter(a => !a.isChange && a.hasActivity).pop() || {}
-
- uniqueAddresses.forEach(a => {
- a.expanded = false
- a.accountType = type
- a.gapLimitExceeded =
- !a.isChange &&
- a.addressIndex >
- lastAcctiveAddress.addressIndex +
- this.config.DEFAULT_RECEIVE_GAP_LIMIT
- })
- this.addresses.data.push(...uniqueAddresses)
- }
- },
- updateAmountForAddress: async function (addressData, amount = 0) {
- try {
- const wallet = this.g.user.wallets[0]
- addressData.amount = amount
- if (!addressData.isChange) {
- const addressWallet = this.walletAccounts.find(
- w => w.id === addressData.wallet
- )
- if (
- addressWallet &&
- addressWallet.address_no < addressData.addressIndex
- ) {
- addressWallet.address_no = addressData.addressIndex
- }
}
-
- await LNbits.api.request(
- 'PUT',
- `/watchonly/api/v1/address/${addressData.id}`,
- wallet.adminkey,
- {amount}
- )
- } catch (err) {
- addressData.error = 'Failed to refresh amount for address'
- this.$q.notify({
- type: 'warning',
- message: `Failed to refresh amount for address ${addressData.address}`,
- timeout: 10000
- })
- LNbits.utils.notifyApiError(err)
- }
- },
- updateNoteForAddress: async function (addressData, note) {
- try {
- const wallet = this.g.user.wallets[0]
- await LNbits.api.request(
- 'PUT',
- `/watchonly/api/v1/address/${addressData.id}`,
- wallet.adminkey,
- {note: addressData.note}
- )
- const updatedAddress =
- this.addresses.data.find(a => a.id === addressData.id) || {}
- updatedAddress.note = note
- } catch (err) {
- LNbits.utils.notifyApiError(err)
- }
- },
- getFilteredAddresses: function () {
- const selectedWalletId = this.addresses.selectedWallet?.id
- const filter = this.addresses.filterValues || []
- const includeChangeAddrs = filter.includes('Show Change Addresses')
- const includeGapAddrs = filter.includes('Show Gap Addresses')
- const excludeNoAmount = filter.includes('Only With Amount')
-
- const walletsLimit = this.walletAccounts.reduce((r, w) => {
- r[`_${w.id}`] = w.address_no
- return r
- }, {})
-
- const addresses = this.addresses.data.filter(
- a =>
- (includeChangeAddrs || !a.isChange) &&
- (includeGapAddrs ||
- a.isChange ||
- a.addressIndex <= walletsLimit[`_${a.wallet}`]) &&
- !(excludeNoAmount && a.amount === 0) &&
- (!selectedWalletId || a.wallet === selectedWalletId)
- )
- return addresses
- },
- openGetFreshAddressDialog: async function (walletId) {
- const {data} = await LNbits.api.request(
- 'GET',
- `/watchonly/api/v1/address/${walletId}`,
- this.g.user.wallets[0].inkey
- )
- const addressData = mapAddressesData(data)
-
- addressData.note = `Shared on ${currentDateTime()}`
- const lastAcctiveAddress =
- this.addresses.data
- .filter(
- a => a.wallet === addressData.wallet && !a.isChange && a.hasActivity
- )
- .pop() || {}
- addressData.gapLimitExceeded =
- !addressData.isChange &&
- addressData.addressIndex >
- lastAcctiveAddress.addressIndex +
- this.config.DEFAULT_RECEIVE_GAP_LIMIT
-
- this.openQrCodeDialog(addressData)
- const wallet = this.walletAccounts.find(w => w.id === walletId) || {}
- wallet.address_no = addressData.addressIndex
- await this.refreshAddresses()
- },
-
- //################### ADDRESS HISTORY ###################
- addressHistoryFromTxs: function (addressData, txs) {
- const addressHistory = []
- txs.forEach(tx => {
- const sent = tx.vin
- .filter(
- vin => vin.prevout.scriptpubkey_address === addressData.address
- )
- .map(vin => mapInputToSentHistory(tx, addressData, vin))
-
- const received = tx.vout
- .filter(vout => vout.scriptpubkey_address === addressData.address)
- .map(vout => mapOutputToReceiveHistory(tx, addressData, vout))
- addressHistory.push(...sent, ...received)
- })
- return addressHistory
- },
- getFilteredAddressesHistory: function () {
- return this.addresses.history.filter(
- a => (!a.isChange || a.sent) && !a.isSubItem
- )
- },
- exportHistoryToCSV: function () {
- const history = this.getFilteredAddressesHistory().map(a => ({
- ...a,
- action: a.sent ? 'Sent' : 'Received'
- }))
- LNbits.utils.exportCSV(
- this.historyTable.exportColums,
- history,
- 'address-history'
- )
- },
- markSameTxAddressHistory: function () {
- this.addresses.history
- .filter(s => s.sent)
- .forEach((el, i, arr) => {
- if (el.isSubItem) return
-
- const sameTxItems = arr.slice(i + 1).filter(e => e.txId === el.txId)
- if (!sameTxItems.length) return
- sameTxItems.forEach(e => {
- e.isSubItem = true
- })
-
- el.totalAmount =
- el.amount + sameTxItems.reduce((t, e) => (t += e.amount || 0), 0)
- el.sameTxItems = sameTxItems
- })
- },
- showAddressHistoryDetails: function (addressHistory) {
- addressHistory.expanded = true
- },
-
- //################### PAYMENT ###################
- createTx: function (excludeChange = false) {
- const tx = {
- fee_rate: this.payment.feeRate,
- tx_size: this.payment.txSize,
- masterpubs: this.walletAccounts.map(w => ({
- public_key: w.masterpub,
- fingerprint: w.fingerprint
- }))
- }
- tx.inputs = this.utxos.data
- .filter(utxo => utxo.selected)
- .map(mapUtxoToPsbtInput)
- .sort((a, b) =>
- a.tx_id < b.tx_id ? -1 : a.tx_id > b.tx_id ? 1 : a.vout - b.vout
- )
-
- tx.outputs = this.payment.data.map(out => ({
- address: out.address,
- amount: out.amount
- }))
-
- if (excludeChange) {
- this.payment.changeAmount = 0
- } else {
- const change = this.createChangeOutput()
- this.payment.changeAmount = change.amount
- if (change.amount >= this.DUST_LIMIT) {
- tx.outputs.push(change)
- }
- }
- // Only sort by amount on UI level (no lib for address decode)
- // Should sort by scriptPubKey (as byte array) on the backend
- tx.outputs.sort((a, b) => a.amount - b.amount)
-
- return tx
- },
- createChangeOutput: function () {
- const change = this.payment.changeAddress
- const fee = this.payment.feeRate * this.payment.txSize
- const inputAmount = this.getTotalSelectedUtxoAmount()
- const payedAmount = this.getTotalPaymentAmount()
- const walletAcount =
- this.walletAccounts.find(w => w.id === change.wallet) || {}
-
- return {
- address: change.address,
- amount: inputAmount - payedAmount - fee,
- addressIndex: change.addressIndex,
- addressIndex: change.addressIndex,
- masterpub_fingerprint: walletAcount.fingerprint
- }
- },
- computeFee: function () {
- const tx = this.createTx()
- this.payment.txSize = Math.round(txSize(tx))
- return this.payment.feeRate * this.payment.txSize
- },
- createPsbt: async function () {
- const wallet = this.g.user.wallets[0]
- try {
- this.computeFee()
- const tx = this.createTx()
- txSize(tx)
- for (const input of tx.inputs) {
- input.tx_hex = await this.fetchTxHex(input.tx_id)
- }
-
- const {data} = await LNbits.api.request(
- 'POST',
- '/watchonly/api/v1/psbt',
- wallet.adminkey,
- tx
- )
-
- this.payment.psbtBase64 = data
- } catch (err) {
- LNbits.utils.notifyApiError(err)
- }
- },
- deletePaymentAddress: function (v) {
- const index = this.payment.data.indexOf(v)
- if (index !== -1) {
- this.payment.data.splice(index, 1)
- }
- },
- initPaymentData: async function () {
- if (!this.payment.show) return
- await this.refreshAddresses()
-
- this.payment.showAdvanced = false
- this.payment.changeWallet = this.walletAccounts[0]
- this.selectChangeAddress(this.payment.changeWallet)
-
- await this.refreshRecommendedFees()
- this.payment.feeRate = this.payment.recommededFees.halfHourFee
- },
- getFeeRateLabel: function (feeRate) {
- const fees = this.payment.recommededFees
- if (feeRate >= fees.fastestFee) return `High Priority (${feeRate} sat/vB)`
- if (feeRate >= fees.halfHourFee)
- return `Medium Priority (${feeRate} sat/vB)`
- if (feeRate >= fees.hourFee) return `Low Priority (${feeRate} sat/vB)`
- return `No Priority (${feeRate} sat/vB)`
- },
- addPaymentAddress: function () {
- this.payment.data.push({address: '', amount: undefined})
- },
- getTotalPaymentAmount: function () {
- return this.payment.data.reduce((t, a) => t + (a.amount || 0), 0)
- },
- selectChangeAddress: function (wallet = {}) {
- this.payment.changeAddress =
- this.addresses.data.find(
- a => a.wallet === wallet.id && a.isChange && !a.hasActivity
- ) || {}
- },
- goToPaymentView: async function () {
- this.payment.show = true
- this.tab = 'utxos'
- await this.initPaymentData()
- },
- sendMaxToAddress: function (paymentAddress = {}) {
- paymentAddress.amount = 0
- const tx = this.createTx(true)
- this.payment.txSize = Math.round(txSize(tx))
- const fee = this.payment.feeRate * this.payment.txSize
- const inputAmount = this.getTotalSelectedUtxoAmount()
- const payedAmount = this.getTotalPaymentAmount()
- paymentAddress.amount = Math.max(0, inputAmount - payedAmount - fee)
- },
-
- //################### UTXOs ###################
- scanAllAddresses: async function () {
- await this.refreshAddresses()
- this.addresses.history = []
- let addresses = this.addresses.data
- this.utxos.data = []
- this.utxos.total = 0
- // Loop while new funds are found on the gap adresses.
- // Use 1000 limit as a safety check (scan 20 000 addresses max)
- for (let i = 0; i < 1000 && addresses.length; i++) {
+ },
+ scanAddressWithAmount: async function () {
+ this.utxos.data = []
+ this.utxos.total = 0
+ this.history = []
+ const addresses = this.addresses.filter(a => a.hasActivity)
await this.updateUtxosForAddresses(addresses)
- const oldAddresses = this.addresses.data.slice()
- await this.refreshAddresses()
- const newAddresses = this.addresses.data.slice()
- // check if gap addresses have been extended
- addresses = newAddresses.filter(
- newAddr => !oldAddresses.find(oldAddr => oldAddr.id === newAddr.id)
- )
- if (addresses.length) {
+ },
+ scanAddress: async function (addressData) {
+ this.updateUtxosForAddresses([addressData])
+ this.$q.notify({
+ type: 'positive',
+ message: 'Address Rescanned',
+ timeout: 10000
+ })
+ },
+ refreshAddresses: async function () {
+ if (!this.walletAccounts) return
+ this.addresses = []
+ for (const {id, type} of this.walletAccounts) {
+ const newAddresses = await this.getAddressesForWallet(id)
+ const uniqueAddresses = newAddresses.filter(
+ newAddr => !this.addresses.find(a => a.address === newAddr.address)
+ )
+
+ const lastAcctiveAddress =
+ uniqueAddresses.filter(a => !a.isChange && a.hasActivity).pop() ||
+ {}
+
+ uniqueAddresses.forEach(a => {
+ a.expanded = false
+ a.accountType = type
+ a.gapLimitExceeded =
+ !a.isChange &&
+ a.addressIndex >
+ lastAcctiveAddress.addressIndex + DEFAULT_RECEIVE_GAP_LIMIT
+ })
+ this.addresses.push(...uniqueAddresses)
+ }
+ this.$emit('update:addresses', this.addresses)
+ },
+ getAddressesForWallet: async function (walletId) {
+ try {
+ const {data} = await LNbits.api.request(
+ 'GET',
+ '/watchonly/api/v1/addresses/' + walletId,
+ this.g.user.wallets[0].inkey
+ )
+ return data.map(mapAddressesData)
+ } catch (error) {
this.$q.notify({
- type: 'positive',
- message: 'Funds found! Scanning for more...',
+ type: 'warning',
+ message: `Failed to fetch addresses for wallet with id ${walletId}.`,
timeout: 10000
})
+ LNbits.utils.notifyApiError(error)
}
- }
- },
- scanAddressWithAmount: async function () {
- this.utxos.data = []
- this.utxos.total = 0
- this.addresses.history = []
- const addresses = this.addresses.data.filter(a => a.hasActivity)
- await this.updateUtxosForAddresses(addresses)
- },
- scanAddress: async function (addressData) {
- this.updateUtxosForAddresses([addressData])
- this.$q.notify({
- type: 'positive',
- message: 'Address Rescanned',
- timeout: 10000
- })
- },
- updateUtxosForAddresses: async function (addresses = []) {
- this.scan = {scanning: true, scanCount: addresses.length, scanIndex: 0}
+ return []
+ },
+ updateUtxosForAddresses: async function (addresses = []) {
+ this.scan = {scanning: true, scanCount: addresses.length, scanIndex: 0}
- try {
- for (addrData of addresses) {
- const addressHistory = await this.getAddressTxsDelayed(addrData)
- // remove old entries
- this.addresses.history = this.addresses.history.filter(
- h => h.address !== addrData.address
- )
+ try {
+ for (addrData of addresses) {
+ const addressHistory = await this.getAddressTxsDelayed(addrData)
+ // remove old entries
+ this.history = this.history.filter(
+ h => h.address !== addrData.address
+ )
- // add new entrie
- this.addresses.history.push(...addressHistory)
- this.addresses.history.sort((a, b) =>
- !a.height ? -1 : b.height - a.height
- )
- this.markSameTxAddressHistory()
+ // add new entries
+ this.history.push(...addressHistory)
+ this.history.sort((a, b) => (!a.height ? -1 : b.height - a.height))
+ this.markSameTxAddressHistory()
- if (addressHistory.length) {
- // search only if it ever had any activity
- const utxos = await this.getAddressTxsUtxoDelayed(addrData.address)
- this.updateUtxosForAddress(addrData, utxos)
+ if (addressHistory.length) {
+ // search only if it ever had any activity
+ const utxos = await this.getAddressTxsUtxoDelayed(
+ addrData.address
+ )
+ this.updateUtxosForAddress(addrData, utxos)
+ }
+
+ this.scan.scanIndex++
}
-
- this.scan.scanIndex++
+ } catch (error) {
+ console.error(error)
+ this.$q.notify({
+ type: 'warning',
+ message: 'Failed to scan addresses',
+ timeout: 10000
+ })
+ } finally {
+ this.scan.scanning = false
}
- } catch (error) {
- console.error(error)
- this.$q.notify({
- type: 'warning',
- message: 'Failed to scan addresses',
- timeout: 10000
- })
- } finally {
- this.scan.scanning = false
- }
- },
- updateUtxosForAddress: function (addressData, utxos = []) {
- const wallet =
- this.walletAccounts.find(w => w.id === addressData.wallet) || {}
+ },
+ updateUtxosForAddress: function (addressData, utxos = []) {
+ const wallet =
+ this.walletAccounts.find(w => w.id === addressData.wallet) || {}
- const newUtxos = utxos.map(utxo =>
- mapAddressDataToUtxo(wallet, addressData, utxo)
- )
- // remove old utxos
- this.utxos.data = this.utxos.data.filter(
- u => u.address !== addressData.address
- )
- // add new utxos
- this.utxos.data.push(...newUtxos)
- if (utxos.length) {
- this.utxos.data.sort((a, b) => b.sort - a.sort)
- this.utxos.total = this.utxos.data.reduce(
- (total, y) => (total += y?.amount || 0),
+ const newUtxos = utxos.map(utxo =>
+ mapAddressDataToUtxo(wallet, addressData, utxo)
+ )
+ // remove old utxos
+ this.utxos.data = this.utxos.data.filter(
+ u => u.address !== addressData.address
+ )
+ // add new utxos
+ this.utxos.data.push(...newUtxos)
+ if (utxos.length) {
+ this.utxos.data.sort((a, b) => b.sort - a.sort)
+ this.utxos.total = this.utxos.data.reduce(
+ (total, y) => (total += y?.amount || 0),
+ 0
+ )
+ }
+ const addressTotal = utxos.reduce(
+ (total, y) => (total += y?.value || 0),
0
)
- }
- const addressTotal = utxos.reduce(
- (total, y) => (total += y?.value || 0),
- 0
- )
- this.updateAmountForAddress(addressData, addressTotal)
- },
- getTotalSelectedUtxoAmount: function () {
- const total = this.utxos.data
- .filter(u => u.selected)
- .reduce((t, a) => t + (a.amount || 0), 0)
- return total
- },
- applyUtxoSelectionMode: function () {
- const payedAmount = this.getTotalPaymentAmount()
- const mode = this.payment.utxoSelectionMode
- this.utxos.data.forEach(u => (u.selected = false))
- const isManual = mode === 'Manual'
- if (isManual || !payedAmount) return
+ this.updateAmountForAddress(addressData, addressTotal)
+ },
- const isSelectAll = mode === 'Select All'
- if (isSelectAll || payedAmount >= this.utxos.total) {
- this.utxos.data.forEach(u => (u.selected = true))
- return
- }
- const isSmallerFirst = mode === 'Smaller Inputs First'
- const isLargerFirst = mode === 'Larger Inputs First'
-
- let selectedUtxos = this.utxos.data.slice()
- if (isSmallerFirst || isLargerFirst) {
- const sortFn = isSmallerFirst
- ? (a, b) => a.amount - b.amount
- : (a, b) => b.amount - a.amount
- selectedUtxos.sort(sortFn)
- } else {
- // default to random order
- selectedUtxos = _.shuffle(selectedUtxos)
- }
- selectedUtxos.reduce((total, utxo) => {
- utxo.selected = total < payedAmount
- total += utxo.amount
- return total
- }, 0)
- },
-
- //################### MEMPOOL API ###################
- getAddressTxsDelayed: async function (addrData) {
- const {
- bitcoin: {addresses: addressesAPI}
- } = mempoolJS()
-
- const fn = async () =>
- addressesAPI.getAddressTxs({
- address: addrData.address
+ //################### MEMPOOL API ###################
+ getAddressTxsDelayed: async function (addrData) {
+ const accounts = this.walletAccounts
+ const {
+ bitcoin: {addresses: addressesAPI}
+ } = mempoolJS({
+ hostname: this.mempoolHostname
})
- const addressTxs = await retryWithDelay(fn)
- return this.addressHistoryFromTxs(addrData, addressTxs)
- },
+ const fn = async () => {
+ if (!accounts.find(w => w.id === addrData.wallet)) return []
+ return addressesAPI.getAddressTxs({
+ address: addrData.address
+ })
+ }
+ const addressTxs = await retryWithDelay(fn)
+ return this.addressHistoryFromTxs(addrData, addressTxs)
+ },
- refreshRecommendedFees: async function () {
- const {
- bitcoin: {fees: feesAPI}
- } = mempoolJS()
-
- const fn = async () => feesAPI.getFeesRecommended()
- this.payment.recommededFees = await retryWithDelay(fn)
- },
- getAddressTxsUtxoDelayed: async function (address) {
- const {
- bitcoin: {addresses: addressesAPI}
- } = mempoolJS()
-
- const fn = async () =>
- addressesAPI.getAddressTxsUtxo({
- address
+ getAddressTxsUtxoDelayed: async function (address) {
+ const endpoint = this.mempoolHostname
+ const {
+ bitcoin: {addresses: addressesAPI}
+ } = mempoolJS({
+ hostname: endpoint
})
- return retryWithDelay(fn)
- },
- fetchTxHex: async function (txId) {
- const {
- bitcoin: {transactions: transactionsAPI}
- } = mempoolJS()
- try {
- const response = await transactionsAPI.getTxHex({txid: txId})
- return response
- } catch (error) {
- this.$q.notify({
- type: 'warning',
- message: `Failed to fetch transaction details for tx id: '${txId}'`,
- timeout: 10000
- })
- LNbits.utils.notifyApiError(error)
- throw error
+ const fn = async () => {
+ if (endpoint !== this.mempoolHostname) return []
+ return addressesAPI.getAddressTxsUtxo({
+ address
+ })
+ }
+ return retryWithDelay(fn)
+ },
+
+ //################### OTHER ###################
+
+ openQrCodeDialog: function (addressData) {
+ this.currentAddress = addressData
+ this.addressNote = addressData.note || ''
+ this.showAddress = true
+ },
+ searchInTab: function ({tab, value}) {
+ this.tab = tab
+ this[`${tab}Filter`] = value
+ },
+
+ updateAccounts: async function (accounts) {
+ this.walletAccounts = accounts
+ await this.refreshAddresses()
+ await this.scanAddressWithAmount()
+ },
+ showAddressDetails: function (addressData) {
+ this.openQrCodeDialog(addressData)
+ },
+ initUtxos: function (addresses) {
+ if (!this.fetchedUtxos && addresses.length) {
+ this.fetchedUtxos = true
+ this.addresses = addresses
+ this.scanAddressWithAmount()
+ }
}
},
-
- //################### OTHER ###################
- closeFormDialog: function () {
- this.formDialog.data = {
- is_unique: false
+ created: async function () {
+ if (this.g.user.wallets.length) {
+ await this.refreshAddresses()
+ await this.scanAddressWithAmount()
}
- },
- openQrCodeDialog: function (addressData) {
- this.currentAddress = addressData
- this.addresses.note = addressData.note || ''
- this.addresses.show = true
- },
- searchInTab: function (tab, value) {
- this.tab = tab
- this[`${tab}Table`].filter = value
- },
-
- satBtc(val, showUnit = true) {
- const value = this.config.data.sats_denominated
- ? LNbits.utils.formatSat(val)
- : val == 0
- ? 0.0
- : (val / 100000000).toFixed(8)
- if (!showUnit) return value
- return this.config.data.sats_denominated ? value + ' sat' : value + ' BTC'
- },
- getAccountDescription: function (accountType) {
- return getAccountDescription(accountType)
}
- },
- created: async function () {
- if (this.g.user.wallets.length) {
- await this.getConfig()
- await this.refreshWalletAccounts()
- await this.refreshAddresses()
- await this.scanAddressWithAmount()
- }
- }
-})
+ })
+}
+watchOnly()
diff --git a/lnbits/extensions/watchonly/static/js/map.js b/lnbits/extensions/watchonly/static/js/map.js
index d1bc80389..ecc0b316d 100644
--- a/lnbits/extensions/watchonly/static/js/map.js
+++ b/lnbits/extensions/watchonly/static/js/map.js
@@ -43,7 +43,7 @@ const mapUtxoToPsbtInput = utxo => ({
address: utxo.address,
branch_index: utxo.isChange ? 1 : 0,
address_index: utxo.addressIndex,
- masterpub_fingerprint: utxo.masterpubFingerprint,
+ wallet: utxo.wallet,
accountType: utxo.accountType,
txHex: ''
})
@@ -66,15 +66,15 @@ const mapAddressDataToUtxo = (wallet, addressData, utxo) => ({
selected: false
})
-const mapWalletAccount = function (obj) {
- obj._data = _.clone(obj)
- obj.date = obj.time
- ? Quasar.utils.date.formatDate(
- new Date(obj.time * 1000),
- 'YYYY-MM-DD HH:mm'
- )
- : ''
- obj.label = obj.title // for drop-downs
- obj.expanded = false
- return obj
+const mapWalletAccount = function (o) {
+ return Object.assign({}, o, {
+ date: o.time
+ ? Quasar.utils.date.formatDate(
+ new Date(o.time * 1000),
+ 'YYYY-MM-DD HH:mm'
+ )
+ : '',
+ label: o.title,
+ expanded: false
+ })
}
diff --git a/lnbits/extensions/watchonly/static/js/tables.js b/lnbits/extensions/watchonly/static/js/tables.js
index fdd558bde..f437bcd56 100644
--- a/lnbits/extensions/watchonly/static/js/tables.js
+++ b/lnbits/extensions/watchonly/static/js/tables.js
@@ -1,99 +1,4 @@
const tables = {
- walletsTable: {
- columns: [
- {
- name: 'new',
- align: 'left',
- label: ''
- },
- {
- name: 'title',
- align: 'left',
- label: 'Title',
- field: 'title'
- },
- {
- name: 'amount',
- align: 'left',
- label: 'Amount'
- },
- {
- name: 'type',
- align: 'left',
- label: 'Type',
- field: 'type'
- },
- {name: 'id', align: 'left', label: 'ID', field: 'id'}
- ],
- pagination: {
- rowsPerPage: 10
- },
- filter: ''
- },
- utxosTable: {
- columns: [
- {
- name: 'expand',
- align: 'left',
- label: ''
- },
- {
- name: 'selected',
- align: 'left',
- label: ''
- },
- {
- name: 'status',
- align: 'center',
- label: 'Status',
- sortable: true
- },
- {
- name: 'address',
- align: 'left',
- label: 'Address',
- field: 'address',
- sortable: true
- },
- {
- name: 'amount',
- align: 'left',
- label: 'Amount',
- field: 'amount',
- sortable: true
- },
- {
- name: 'date',
- align: 'left',
- label: 'Date',
- field: 'date',
- sortable: true
- },
- {
- name: 'wallet',
- align: 'left',
- label: 'Account',
- field: 'wallet',
- sortable: true
- }
- ],
- pagination: {
- rowsPerPage: 10
- },
- filter: ''
- },
- paymentTable: {
- columns: [
- {
- name: 'data',
- align: 'left'
- }
- ],
- pagination: {
- rowsPerPage: 10
- },
- filter: ''
- },
summaryTable: {
columns: [
{
@@ -117,157 +22,36 @@ const tables = {
label: 'Change'
}
]
- },
- addressesTable: {
- columns: [
- {
- name: 'expand',
- align: 'left',
- label: ''
- },
- {
- name: 'address',
- align: 'left',
- label: 'Address',
- field: 'address',
- sortable: true
- },
- {
- name: 'amount',
- align: 'left',
- label: 'Amount',
- field: 'amount',
- sortable: true
- },
- {
- name: 'note',
- align: 'left',
- label: 'Note',
- field: 'note',
- sortable: true
- },
- {
- name: 'wallet',
- align: 'left',
- label: 'Account',
- field: 'wallet',
- sortable: true
- }
- ],
- pagination: {
- rowsPerPage: 0,
- sortBy: 'amount',
- descending: true
- },
- filter: ''
- },
- historyTable: {
- columns: [
- {
- name: 'expand',
- align: 'left',
- label: ''
- },
- {
- name: 'status',
- align: 'left',
- label: 'Status'
- },
- {
- name: 'amount',
- align: 'left',
- label: 'Amount',
- field: 'amount',
- sortable: true
- },
- {
- name: 'address',
- align: 'left',
- label: 'Address',
- field: 'address',
- sortable: true
- },
- {
- name: 'date',
- align: 'left',
- label: 'Date',
- field: 'date',
- sortable: true
- }
- ],
- exportColums: [
- {
- label: 'Action',
- field: 'action'
- },
- {
- label: 'Date&Time',
- field: 'date'
- },
- {
- label: 'Amount',
- field: 'amount'
- },
- {
- label: 'Fee',
- field: 'fee'
- },
- {
- label: 'Transaction Id',
- field: 'txId'
- }
- ],
- pagination: {
- rowsPerPage: 0
- },
- filter: ''
}
}
const tableData = {
- walletAccounts: [],
- addresses: {
- show: false,
- data: [],
- history: [],
- selectedWallet: null,
- note: '',
- filterOptions: [
- 'Show Change Addresses',
- 'Show Gap Addresses',
- 'Only With Amount'
- ],
- filterValues: []
- },
utxos: {
data: [],
total: 0
},
payment: {
- data: [{address: '', amount: undefined}],
- changeWallet: null,
- changeAddress: {},
- changeAmount: 0,
-
- feeRate: 1,
- recommededFees: {
- fastestFee: 1,
- halfHourFee: 1,
- hourFee: 1,
- economyFee: 1,
- minimumFee: 1
- },
fee: 0,
txSize: 0,
+ tx: null,
psbtBase64: '',
- utxoSelectionModes: [
- 'Manual',
- 'Random',
- 'Select All',
- 'Smaller Inputs First',
- 'Larger Inputs First'
+ psbtBase64Signed: '',
+ signedTx: null,
+ signedTxHex: null,
+ sentTxId: null,
+
+ signModes: [
+ {
+ label: 'Serial Port Device',
+ value: 'serial-port'
+ },
+ {
+ label: 'Animated QR',
+ value: 'animated-qr',
+ disable: true
+ }
],
- utxoSelectionMode: 'Manual',
+ signMode: '',
show: false,
showAdvanced: false
},
diff --git a/lnbits/extensions/watchonly/static/js/utils.js b/lnbits/extensions/watchonly/static/js/utils.js
index 26bebac66..6065d74c7 100644
--- a/lnbits/extensions/watchonly/static/js/utils.js
+++ b/lnbits/extensions/watchonly/static/js/utils.js
@@ -1,3 +1,18 @@
+const PSBT_BASE64_PREFIX = 'cHNidP8'
+const COMMAND_PASSWORD = '/password'
+const COMMAND_PASSWORD_CLEAR = '/password-clear'
+const COMMAND_SEND_PSBT = '/psbt'
+const COMMAND_SIGN_PSBT = '/sign'
+const COMMAND_HELP = '/help'
+const COMMAND_WIPE = '/wipe'
+const COMMAND_SEED = '/seed'
+const COMMAND_RESTORE = '/restore'
+const COMMAND_CONFIRM_NEXT = '/confirm-next'
+const COMMAND_CANCEL = '/cancel'
+const COMMAND_XPUB = '/xpub'
+
+const DEFAULT_RECEIVE_GAP_LIMIT = 20
+
const blockTimeToDate = blockTime =>
blockTime ? moment(blockTime * 1000).format('LLL') : ''
@@ -97,3 +112,72 @@ const ACCOUNT_TYPES = {
}
const getAccountDescription = type => ACCOUNT_TYPES[type] || 'nonstandard'
+
+const readFromSerialPort = reader => {
+ let partialChunk
+ let fulliness = []
+
+ const readStringUntil = async (separator = '\n') => {
+ if (fulliness.length) return fulliness.shift().trim()
+ const chunks = []
+ if (partialChunk) {
+ // leftovers from previous read
+ chunks.push(partialChunk)
+ partialChunk = undefined
+ }
+ while (true) {
+ const {value, done} = await reader.read()
+ if (value) {
+ const values = value.split(separator)
+ // found one or more separators
+ if (values.length > 1) {
+ chunks.push(values.shift()) // first element
+ partialChunk = values.pop() // last element
+ fulliness = values // full lines
+ return {value: chunks.join('').trim(), done: false}
+ }
+ chunks.push(value)
+ }
+ if (done) return {value: chunks.join('').trim(), done: true}
+ }
+ }
+ return readStringUntil
+}
+
+function satOrBtc(val, showUnit = true, showSats = false) {
+ const value = showSats
+ ? LNbits.utils.formatSat(val)
+ : val == 0
+ ? 0.0
+ : (val / 100000000).toFixed(8)
+ if (!showUnit) return value
+ return showSats ? value + ' sat' : value + ' BTC'
+}
+
+function loadTemplateAsync(path) {
+ const result = new Promise(resolve => {
+ const xhttp = new XMLHttpRequest()
+
+ xhttp.onreadystatechange = function () {
+ if (this.readyState == 4) {
+ if (this.status == 200) resolve(this.responseText)
+
+ if (this.status == 404) resolve(`Page not found: ${path}
`)
+ }
+ }
+
+ xhttp.open('GET', path, true)
+ xhttp.send()
+ })
+
+ return result
+}
+
+function findAccountPathIssues(path = '') {
+ const p = path.split('/')
+ if (p[0] !== 'm') return "Path must start with 'm/'"
+ for (let i = 1; i < p.length; i++) {
+ if (p[i].endsWith('')) p[i] = p[i].substring(0, p[i].length - 1)
+ if (isNaN(p[i])) return `${p[i]} is not a valid value`
+ }
+}
diff --git a/lnbits/extensions/watchonly/templates/watchonly/index.html b/lnbits/extensions/watchonly/templates/watchonly/index.html
index 0ab2a67be..982f90412 100644
--- a/lnbits/extensions/watchonly/templates/watchonly/index.html
+++ b/lnbits/extensions/watchonly/templates/watchonly/index.html
@@ -2,198 +2,70 @@
%} {% block page %}
-
- {% raw %}
-
-
-
-
{{satBtc(utxos.total)}}
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
- Add Wallet Account
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ col.label }}
-
-
-
-
-
-
-
-
-
-
-
- New Receive Address
-
-
-
-
- {{props.row.title}}
-
-
- {{getAmmountForWallet(props.row.id)}}
-
-
- {{props.row.type}}
-
-
- {{props.row.id}}
-
-
-
-
-
-
-
- New Receive Address
-
-
- {{getAccountDescription(props.row.type)}}
-
-
-
-
-
-
Master Pubkey:
-
-
-
-
-
-
-
Last Address Index:
-
- {{props.row.address_no}}
- none
-
-
-
-
-
Fingerprint:
-
{{props.row.fingerprint}}
-
-
-
-
-
-
-
-
-
+
+
+ {% raw %}
-
+
Scan Blockchain
+
+
-
+
Make Payment New Payment
+ Back
@@ -208,828 +80,64 @@
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{satBtc(props.row.amount)}}
-
-
-
- {{props.row.note}}
-
-
- {{getWalletName(props.row.wallet)}}
-
-
-
-
-
-
-
- QR Code
-
-
- Rescan
-
-
- History
-
-
- View Coins
-
-
-
-
-
Note:
-
-
-
-
- Update
-
-
-
-
-
-
- {{props.row.error}}
-
-
-
-
-
- Gap limit of 20 addresses exceeded. Other wallets
- might not detect funds at this address.
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Export to CSV
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{props.row.confirmed ? 'Sent' : 'Sending...'}}
-
-
- {{props.row.confirmed ? 'Received' : 'Receiving...'}}
-
-
-
-
- {{satBtc(props.row.totalAmount || props.row.amount)}}
-
-
-
-
- {{props.row.address}}
-
- ...
-
-
- {{ props.row.date }}
-
-
-
-
-
-
UTXOs
-
- {{satBtc(props.row.amount)}}
-
-
{{props.row.address}}
-
-
-
-
{{satBtc(s.amount)}}
-
{{s.address}}
-
-
-
Fee
-
{{satBtc(props.row.fee)}}
-
-
-
Block Height
-
{{props.row.height}}
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Max
-
-
-
-
-
-
-
-
-
- Add Send Address
-
-
-
-
- Payed Amount:
-
-
- {{satBtc(getTotalPaymentAmount())}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Confirmed
-
-
- Pending
-
-
-
-
-
-
-
-
- {{satBtc(props.row.amount)}}
-
-
-
- {{ props.row.date }}
-
-
- {{getWalletName(props.row.wallet)}}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Slected Amount:
-
-
- {{satBtc(getTotalSelectedUtxoAmount())}}
-
-
-
-
-
-
-
-
-
-
-
-
-
Change Account:
-
-
-
-
-
-
-
-
-
Fee Rate:
-
-
-
-
-
-
-
-
-
-
-
- Warning! The fee is too low. The transaction might take
- a long time to confirm.
-
-
- Warning! The fee is too high. You might be overpaying
- for this transaction.
-
-
-
-
-
-
Fee:
-
{{computeFee()}} sats
-
- Refresh Fee Rates
-
-
-
-
-
-
-
-
-
-
-
- {{satBtc(getTotalSelectedUtxoAmount())}}
-
-
-
-
- {{satBtc(getTotalPaymentAmount())}}
-
-
-
-
- {{satBtc(computeFee())}}
-
-
-
-
- {{payment.changeAmount ? payment.changeAmount:
- 'no change'}}
-
-
- Below dust limit. Will be used as feee.
-
-
-
-
-
-
-
-
-
- Create PSBT
-
-
-
- The payed amount is higher than the selected amount!
-
-
-
-
-
-
-
+
+
{% endraw %}
@@ -1047,100 +155,9 @@
-
-
-
-
-
-
-
-
-
- Add Watch-Only Account
- Cancel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Update
- Cancel
-
-
-
-
-
-
-
- {% raw %}
-
+ {% raw %}
+
+
Address Details
@@ -1160,7 +177,7 @@
size="ms"
icon="launch"
type="a"
- :href="config.mempool_endpoint + '/address/' + currentAddress.address"
+ :href="mempoolHostname + '/address/' + currentAddress.address"
target="_blank"
>
@@ -1168,7 +185,7 @@
@@ -1185,7 +202,7 @@
outline
v-close-popup
color="grey"
- @click="updateNoteForAddress(currentAddress, addresses.note)"
+ @click="updateNoteForAddress({addressId: currentAddress.id, note: addressNote})"
class="q-ml-sm"
>Save Note
@@ -1194,14 +211,31 @@
+
{% endraw %}
{% endblock %} {% block scripts %} {{ window_vars(user) }}
+
+
+
+
+
+
+
+
+
+
+
+
{% endblock %}
diff --git a/lnbits/extensions/watchonly/views_api.py b/lnbits/extensions/watchonly/views_api.py
index f9055a207..1a4b93ed4 100644
--- a/lnbits/extensions/watchonly/views_api.py
+++ b/lnbits/extensions/watchonly/views_api.py
@@ -1,7 +1,8 @@
+import json
from http import HTTPStatus
-from embit import script
-from embit.descriptor import Descriptor, Key
+import httpx
+from embit import finalizer, script
from embit.ec import PublicKey
from embit.psbt import PSBT, DerivationPath
from embit.transaction import Transaction, TransactionInput, TransactionOutput
@@ -15,34 +16,44 @@ from lnbits.extensions.watchonly import watchonly_ext
from .crud import (
create_config,
create_fresh_addresses,
- create_mempool,
create_watch_wallet,
delete_addresses_for_wallet,
delete_watch_wallet,
get_addresses,
get_config,
get_fresh_address,
- get_mempool,
get_watch_wallet,
get_watch_wallets,
update_address,
update_config,
- update_mempool,
update_watch_wallet,
)
from .helpers import parse_key
-from .models import Config, CreatePsbt, CreateWallet, WalletAccount
+from .models import (
+ BroadcastTransaction,
+ Config,
+ CreatePsbt,
+ CreateWallet,
+ ExtractPsbt,
+ SignedTransaction,
+ WalletAccount,
+)
###################WALLETS#############################
@watchonly_ext.get("/api/v1/wallet")
-async def api_wallets_retrieve(wallet: WalletTypeInfo = Depends(get_key_type)):
+async def api_wallets_retrieve(
+ network: str = Query("Mainnet"), wallet: WalletTypeInfo = Depends(get_key_type)
+):
try:
- return [wallet.dict() for wallet in await get_watch_wallets(wallet.wallet.user)]
+ return [
+ wallet.dict()
+ for wallet in await get_watch_wallets(wallet.wallet.user, network)
+ ]
except:
- return ""
+ return []
@watchonly_ext.get("/api/v1/wallet/{wallet_id}")
@@ -64,7 +75,13 @@ async def api_wallet_create_or_update(
data: CreateWallet, w: WalletTypeInfo = Depends(require_admin_key)
):
try:
- (descriptor, _) = parse_key(data.masterpub)
+ (descriptor, network) = parse_key(data.masterpub)
+ if data.network != network["name"]:
+ raise ValueError(
+ "Account network error. This account is for '{}'".format(
+ network["name"]
+ )
+ )
new_wallet = WalletAccount(
id="none",
@@ -75,11 +92,19 @@ async def api_wallet_create_or_update(
title=data.title,
address_no=-1, # so fresh address on empty wallet can get address with index 0
balance=0,
+ network=network["name"],
)
- wallets = await get_watch_wallets(w.wallet.user)
+ wallets = await get_watch_wallets(w.wallet.user, network["name"])
existing_wallet = next(
- (ew for ew in wallets if ew.fingerprint == new_wallet.fingerprint), None
+ (
+ ew
+ for ew in wallets
+ if ew.fingerprint == new_wallet.fingerprint
+ and ew.network == new_wallet.network
+ and ew.masterpub == new_wallet.masterpub
+ ),
+ None,
)
if existing_wallet:
raise ValueError(
@@ -218,12 +243,13 @@ async def api_psbt_create(
descriptors = {}
for _, masterpub in enumerate(data.masterpubs):
- descriptors[masterpub.fingerprint] = parse_key(masterpub.public_key)
+ descriptors[masterpub.id] = parse_key(masterpub.public_key)
inputs_extra = []
- bip32_derivations = {}
+
for i, inp in enumerate(data.inputs):
- descriptor = descriptors[inp.masterpub_fingerprint][0]
+ bip32_derivations = {}
+ descriptor = descriptors[inp.wallet][0]
d = descriptor.derive(inp.address_index, inp.branch_index)
for k in d.keys:
bip32_derivations[PublicKey.parse(k.sec())] = DerivationPath(
@@ -242,12 +268,13 @@ async def api_psbt_create(
for i, inp in enumerate(inputs_extra):
psbt.inputs[i].bip32_derivations = inp["bip32_derivations"]
psbt.inputs[i].non_witness_utxo = inp.get("non_witness_utxo", None)
+ print("### ", inp.get("non_witness_utxo", None))
outputs_extra = []
bip32_derivations = {}
for i, out in enumerate(data.outputs):
if out.branch_index == 1:
- descriptor = descriptors[out.masterpub_fingerprint][0]
+ descriptor = descriptors[out.wallet][0]
d = descriptor.derive(out.address_index, out.branch_index)
for k in d.keys:
bip32_derivations[PublicKey.parse(k.sec())] = DerivationPath(
@@ -264,6 +291,66 @@ async def api_psbt_create(
raise HTTPException(status_code=HTTPStatus.BAD_REQUEST, detail=str(e))
+@watchonly_ext.put("/api/v1/psbt/extract")
+async def api_psbt_extract_tx(
+ data: ExtractPsbt, w: WalletTypeInfo = Depends(require_admin_key)
+):
+ res = SignedTransaction()
+ try:
+ psbt = PSBT.from_base64(data.psbtBase64)
+ for i, inp in enumerate(data.inputs):
+ psbt.inputs[i].non_witness_utxo = Transaction.from_string(inp.tx_hex)
+
+ final_psbt = finalizer.finalize_psbt(psbt)
+ if not final_psbt:
+ raise ValueError("PSBT cannot be finalized!")
+ res.tx_hex = final_psbt.to_string()
+
+ transaction = Transaction.from_string(res.tx_hex)
+ tx = {
+ "locktime": transaction.locktime,
+ "version": transaction.version,
+ "outputs": [],
+ "fee": psbt.fee(),
+ }
+
+ for out in transaction.vout:
+ tx["outputs"].append(
+ {"amount": out.value, "address": out.script_pubkey.address()}
+ )
+ res.tx_json = json.dumps(tx)
+ except Exception as e:
+ raise HTTPException(status_code=HTTPStatus.BAD_REQUEST, detail=str(e))
+ return res.dict()
+
+
+@watchonly_ext.post("/api/v1/tx")
+async def api_tx_broadcast(
+ data: BroadcastTransaction, w: WalletTypeInfo = Depends(require_admin_key)
+):
+ try:
+ config = await get_config(w.wallet.user)
+ if not config:
+ raise ValueError(
+ "Cannot broadcast transaction. Mempool endpoint not defined!"
+ )
+
+ endpoint = (
+ config.mempool_endpoint
+ if config.network == "Mainnet"
+ else config.mempool_endpoint + "/testnet"
+ )
+ async with httpx.AsyncClient() as client:
+ r = await client.post(endpoint + "/api/tx", data=data.tx_hex)
+ tx_id = r.text
+ print("### broadcast tx_id: ", tx_id)
+ return tx_id
+ # return "0f0f0f0f0f0f0f0f0f0f0f00f0f0f0f0f0f0f0f0f0f00f0f0f0f0f0f0.mock.transaction.id"
+ except Exception as e:
+ print("### broadcast error: ", str(e))
+ raise HTTPException(status_code=HTTPStatus.BAD_REQUEST, detail=str(e))
+
+
#############################CONFIG##########################
@@ -281,23 +368,3 @@ async def api_get_config(w: WalletTypeInfo = Depends(get_key_type)):
if not config:
config = await create_config(user=w.wallet.user)
return config.dict()
-
-
-#############################MEMPOOL##########################
-
-### TODO: fix statspay dependcy and remove
-@watchonly_ext.put("/api/v1/mempool")
-async def api_update_mempool(
- endpoint: str = Query(...), w: WalletTypeInfo = Depends(require_admin_key)
-):
- mempool = await update_mempool(**{"endpoint": endpoint}, user=w.wallet.user)
- return mempool.dict()
-
-
-### TODO: fix statspay dependcy and remove
-@watchonly_ext.get("/api/v1/mempool")
-async def api_get_mempool(w: WalletTypeInfo = Depends(require_admin_key)):
- mempool = await get_mempool(w.wallet.user)
- if not mempool:
- mempool = await create_mempool(user=w.wallet.user)
- return mempool.dict()
diff --git a/lnbits/extensions/withdraw/static/js/index.js b/lnbits/extensions/withdraw/static/js/index.js
index 1982d6845..943e90246 100644
--- a/lnbits/extensions/withdraw/static/js/index.js
+++ b/lnbits/extensions/withdraw/static/js/index.js
@@ -70,7 +70,7 @@ new Vue({
show: false,
data: {
is_unique: true,
- use_custom: true,
+ use_custom: false,
title: 'Vouchers',
min_withdrawable: 0,
wait_time: 1
@@ -125,7 +125,6 @@ new Vue({
var link = _.findWhere(this.withdrawLinks, {id: linkId})
this.qrCodeDialog.data = _.clone(link)
- console.log(this.qrCodeDialog.data)
this.qrCodeDialog.data.url =
window.location.protocol + '//' + window.location.host
this.qrCodeDialog.show = true
@@ -140,6 +139,11 @@ new Vue({
id: this.formDialog.data.wallet
})
var data = _.omit(this.formDialog.data, 'wallet')
+
+ if (!data.use_custom) {
+ data.custom_url = null
+ }
+
if (data.use_custom && !data?.custom_url) {
data.custom_url = CUSTOM_URL
}
@@ -168,6 +172,10 @@ new Vue({
data.title = 'vouchers'
data.is_unique = true
+ if (!data.use_custom) {
+ data.custom_url = null
+ }
+
if (data.use_custom && !data?.custom_url) {
data.custom_url = '/static/images/default_voucher.png'
}
diff --git a/lnbits/extensions/withdraw/templates/withdraw/index.html b/lnbits/extensions/withdraw/templates/withdraw/index.html
index 9ff428a1d..b1d927afe 100644
--- a/lnbits/extensions/withdraw/templates/withdraw/index.html
+++ b/lnbits/extensions/withdraw/templates/withdraw/index.html
@@ -241,7 +241,7 @@
v-model="formDialog.data.custom_url"
type="text"
label="Custom design .png (optional)"
- hint="Enter a URL if you want to use a custom design or leave blank for showing only the QR"
+ hint="Enter a URL if you want to use a custom design or leave blank for LNbits designed vouchers!"
>
@@ -353,7 +353,7 @@
v-model="simpleformDialog.data.custom_url"
type="text"
label="Custom design .png (optional)"
- hint="Enter a URL if you want to use a custom design or leave blank for showing only the QR"
+ hint="Enter a URL if you want to use a custom design or leave blank for LNbits designed vouchers!"
>
diff --git a/lnbits/extensions/withdraw/templates/withdraw/print_qr_custom.html b/lnbits/extensions/withdraw/templates/withdraw/print_qr_custom.html
index c95ba5a60..ca47cec44 100644
--- a/lnbits/extensions/withdraw/templates/withdraw/print_qr_custom.html
+++ b/lnbits/extensions/withdraw/templates/withdraw/print_qr_custom.html
@@ -9,7 +9,10 @@
{{ amt }} sats
-
+
{% endfor %}
diff --git a/lnbits/server.py b/lnbits/server.py
index 4a63b3b7b..e9849851b 100644
--- a/lnbits/server.py
+++ b/lnbits/server.py
@@ -1,18 +1,49 @@
+import time
+
import click
import uvicorn
+from lnbits.settings import HOST, PORT
-@click.command()
-@click.option("--port", default="5000", help="Port to run LNBits on")
-@click.option("--host", default="127.0.0.1", help="Host to run LNBits on")
-def main(port, host):
+
+@click.command(
+ context_settings=dict(
+ ignore_unknown_options=True,
+ allow_extra_args=True,
+ )
+)
+@click.option("--port", default=PORT, help="Port to listen on")
+@click.option("--host", default=HOST, help="Host to run LNBits on")
+@click.option("--ssl-keyfile", default=None, help="Path to SSL keyfile")
+@click.option("--ssl-certfile", default=None, help="Path to SSL certificate")
+@click.pass_context
+def main(ctx, port: int, host: str, ssl_keyfile: str, ssl_certfile: str):
"""Launched with `poetry run lnbits` at root level"""
- uvicorn.run("lnbits.__main__:app", port=port, host=host)
+ # this beautiful beast parses all command line arguments and passes them to the uvicorn server
+ d = dict()
+ for a in ctx.args:
+ item = a.split("=")
+ if len(item) > 1: # argument like --key=value
+ print(a, item)
+ d[item[0].strip("--").replace("-", "_")] = (
+ int(item[1]) # need to convert to int if it's a number
+ if item[1].isdigit()
+ else item[1]
+ )
+ else:
+ d[a.strip("--")] = True # argument like --key
+
+ config = uvicorn.Config(
+ "lnbits.__main__:app",
+ port=port,
+ host=host,
+ ssl_keyfile=ssl_keyfile,
+ ssl_certfile=ssl_certfile,
+ **d
+ )
+ server = uvicorn.Server(config)
+ server.run()
if __name__ == "__main__":
main()
-
-# def main():
-# """Launched with `poetry run start` at root level"""
-# uvicorn.run("lnbits.__main__:app")
diff --git a/lnbits/wallets/__init__.py b/lnbits/wallets/__init__.py
index 8a2ca1a54..41949652d 100644
--- a/lnbits/wallets/__init__.py
+++ b/lnbits/wallets/__init__.py
@@ -1,9 +1,12 @@
# flake8: noqa
-from .clightning import CLightningWallet
+from .cliche import ClicheWallet
+from .cln import CoreLightningWallet # legacy .env support
+from .cln import CoreLightningWallet as CLightningWallet
from .eclair import EclairWallet
from .fake import FakeWallet
from .lnbits import LNbitsWallet
+from .lndgrpc import LndWallet
from .lndrest import LndRestWallet
from .lnpay import LNPayWallet
from .lntxbot import LntxbotWallet
diff --git a/lnbits/wallets/cliche.py b/lnbits/wallets/cliche.py
new file mode 100644
index 000000000..7c0347176
--- /dev/null
+++ b/lnbits/wallets/cliche.py
@@ -0,0 +1,143 @@
+import asyncio
+import hashlib
+import json
+from os import getenv
+from typing import AsyncGenerator, Dict, Optional
+
+import httpx
+from loguru import logger
+from websocket import create_connection
+
+from .base import (
+ InvoiceResponse,
+ PaymentResponse,
+ PaymentStatus,
+ StatusResponse,
+ Wallet,
+)
+
+
+class ClicheWallet(Wallet):
+ """https://github.com/fiatjaf/cliche"""
+
+ def __init__(self):
+ self.endpoint = getenv("CLICHE_ENDPOINT")
+
+ async def status(self) -> StatusResponse:
+ try:
+ ws = create_connection(self.endpoint)
+ ws.send("get-info")
+ r = ws.recv()
+ except Exception as exc:
+ return StatusResponse(
+ f"Failed to connect to {self.endpoint} due to: {exc}", 0
+ )
+ try:
+ data = json.loads(r)
+ except:
+ return StatusResponse(
+ f"Failed to connect to {self.endpoint}, got: '{r.text[:200]}...'", 0
+ )
+
+ return StatusResponse(None, data["result"]["wallets"][0]["balance"])
+
+ async def create_invoice(
+ self,
+ amount: int,
+ memo: Optional[str] = None,
+ description_hash: Optional[bytes] = None,
+ ) -> InvoiceResponse:
+ if description_hash:
+ description_hash_hashed = hashlib.sha256(description_hash).hexdigest()
+ ws = create_connection(self.endpoint)
+ ws.send(
+ f"create-invoice --msatoshi {amount*1000} --description_hash {description_hash_hashed}"
+ )
+ r = ws.recv()
+ else:
+ ws = create_connection(self.endpoint)
+ ws.send(f"create-invoice --msatoshi {amount*1000} --description {memo}")
+ r = ws.recv()
+ data = json.loads(r)
+ checking_id = None
+ payment_request = None
+ error_message = None
+
+ if data.get("error") is not None and data["error"].get("message"):
+ logger.error(data["error"]["message"])
+ error_message = data["error"]["message"]
+ return InvoiceResponse(False, checking_id, payment_request, error_message)
+
+ if data.get("result") is not None:
+ checking_id, payment_request = (
+ data["result"]["payment_hash"],
+ data["result"]["invoice"],
+ )
+ else:
+ return InvoiceResponse(
+ False, checking_id, payment_request, "Could not get payment hash"
+ )
+
+ return InvoiceResponse(True, checking_id, payment_request, error_message)
+
+ async def pay_invoice(self, bolt11: str, fee_limit_msat: int) -> PaymentResponse:
+ ws = create_connection(self.endpoint)
+ ws.send(f"pay-invoice --invoice {bolt11}")
+ r = ws.recv()
+ data = json.loads(r)
+ checking_id = None
+ error_message = None
+
+ if data.get("error") is not None and data["error"].get("message"):
+ logger.error(data["error"]["message"])
+ error_message = data["error"]["message"]
+ return PaymentResponse(False, None, 0, error_message)
+
+ if data.get("result") is not None and data["result"].get("payment_hash"):
+ checking_id = data["result"]["payment_hash"]
+ else:
+ return PaymentResponse(False, checking_id, 0, "Could not get payment hash")
+
+ return PaymentResponse(True, checking_id, 0, error_message)
+
+ async def get_invoice_status(self, checking_id: str) -> PaymentStatus:
+ ws = create_connection(self.endpoint)
+ ws.send(f"check-payment --hash {checking_id}")
+ r = ws.recv()
+ data = json.loads(r)
+
+ if data.get("error") is not None and data["error"].get("message"):
+ logger.error(data["error"]["message"])
+ return PaymentStatus(None)
+
+ statuses = {"pending": None, "complete": True, "failed": False}
+ return PaymentStatus(statuses[data["result"]["status"]])
+
+ async def get_payment_status(self, checking_id: str) -> PaymentStatus:
+ ws = create_connection(self.endpoint)
+ ws.send(f"check-payment --hash {checking_id}")
+ r = ws.recv()
+ data = json.loads(r)
+
+ if data.get("error") is not None and data["error"].get("message"):
+ logger.error(data["error"]["message"])
+ return PaymentStatus(None)
+
+ statuses = {"pending": None, "complete": True, "failed": False}
+ return PaymentStatus(statuses[data["result"]["status"]])
+
+ async def paid_invoices_stream(self) -> AsyncGenerator[str, None]:
+ try:
+ ws = await create_connection(self.endpoint)
+ while True:
+ r = await ws.recv()
+ data = json.loads(r)
+ try:
+ if data["result"]["status"]:
+ yield data["result"]["payment_hash"]
+ except:
+ continue
+ except:
+ pass
+ logger.error("lost connection to cliche's websocket, retrying in 5 seconds")
+ await asyncio.sleep(5)
diff --git a/lnbits/wallets/clightning.py b/lnbits/wallets/cln.py
similarity index 59%
rename from lnbits/wallets/clightning.py
rename to lnbits/wallets/cln.py
index fc79b3e32..a92501f25 100644
--- a/lnbits/wallets/clightning.py
+++ b/lnbits/wallets/cln.py
@@ -1,15 +1,18 @@
try:
- from lightning import LightningRpc, RpcError # type: ignore
+ from pyln.client import LightningRpc, RpcError # type: ignore
except ImportError: # pragma: nocover
LightningRpc = None
import asyncio
+import hashlib
import random
import time
from functools import partial, wraps
from os import getenv
from typing import AsyncGenerator, Optional
+from loguru import logger
+
from lnbits import bolt11 as lnbits_bolt11
from .base import (
@@ -41,26 +44,20 @@ def _paid_invoices_stream(ln, last_pay_index):
return ln.waitanyinvoice(last_pay_index)
-class CLightningWallet(Wallet):
+class CoreLightningWallet(Wallet):
def __init__(self):
if LightningRpc is None: # pragma: nocover
raise ImportError(
- "The `pylightning` library must be installed to use `CLightningWallet`."
+ "The `pyln-client` library must be installed to use `CoreLightningWallet`."
)
- self.rpc = getenv("CLIGHTNING_RPC")
+ self.rpc = getenv("CORELIGHTNING_RPC") or getenv("CLIGHTNING_RPC")
self.ln = LightningRpc(self.rpc)
- # check description_hash support (could be provided by a plugin)
- self.supports_description_hash = False
- try:
- answer = self.ln.help("invoicewithdescriptionhash")
- if answer["help"][0]["command"].startswith(
- "invoicewithdescriptionhash msatoshi label description_hash"
- ):
- self.supports_description_hash = True
- except:
- pass
+ # check if description_hash is supported (from CLN>=v0.11.0)
+ self.supports_description_hash = (
+ "deschashonly" in self.ln.help("invoice")["help"][0]["command"]
+ )
# check last payindex so we can listen from that point on
self.last_pay_index = 0
@@ -87,22 +84,33 @@ class CLightningWallet(Wallet):
description_hash: Optional[bytes] = None,
) -> InvoiceResponse:
label = "lbl{}".format(random.random())
- msat = amount * 1000
-
+ msat: int = int(amount * 1000)
try:
- if description_hash:
- if not self.supports_description_hash:
- raise Unsupported("description_hash")
+ if description_hash and not self.supports_description_hash:
+ raise Unsupported("description_hash")
+ r = self.ln.invoice(
+ msatoshi=msat,
+ label=label,
+ description=description_hash.decode("utf-8")
+ if description_hash
+ else memo,
+ exposeprivatechannels=True,
+ deschashonly=True
+ if description_hash
+ else False, # we can't pass None here
+ )
- params = [msat, label, description_hash.hex()]
- r = self.ln.call("invoicewithdescriptionhash", params)
- return InvoiceResponse(True, label, r["bolt11"], "")
- else:
- r = self.ln.invoice(msat, label, memo, exposeprivatechannels=True)
- return InvoiceResponse(True, label, r["bolt11"], "")
+ if r.get("code") and r.get("code") < 0:
+ raise Exception(r.get("message"))
+
+ return InvoiceResponse(True, r["payment_hash"], r["bolt11"], "")
except RpcError as exc:
error_message = f"lightningd '{exc.method}' failed with '{exc.error}'."
- return InvoiceResponse(False, label, None, error_message)
+ logger.error("RPC error:", error_message)
+ return InvoiceResponse(False, None, None, error_message)
+ except Exception as e:
+ logger.error("error:", e)
+ return InvoiceResponse(False, None, None, str(e))
async def pay_invoice(self, bolt11: str, fee_limit_msat: int) -> PaymentResponse:
invoice = lnbits_bolt11.decode(bolt11)
@@ -116,25 +124,32 @@ class CLightningWallet(Wallet):
try:
wrapped = async_wrap(_pay_invoice)
r = await wrapped(self.ln, payload)
- except RpcError as exc:
+ except Exception as exc:
return PaymentResponse(False, None, 0, None, str(exc))
fee_msat = r["msatoshi_sent"] - r["msatoshi"]
- preimage = r["payment_preimage"]
- return PaymentResponse(True, r["payment_hash"], fee_msat, preimage, None)
+ return PaymentResponse(
+ True, r["payment_hash"], fee_msat, r["payment_preimage"], None
+ )
async def get_invoice_status(self, checking_id: str) -> PaymentStatus:
- r = self.ln.listinvoices(checking_id)
+ try:
+ r = self.ln.listinvoices(payment_hash=checking_id)
+ except:
+ return PaymentStatus(None)
if not r["invoices"]:
- return PaymentStatus(False)
- if r["invoices"][0]["label"] == checking_id:
+ return PaymentStatus(None)
+ if r["invoices"][0]["payment_hash"] == checking_id:
return PaymentStatus(r["invoices"][0]["status"] == "paid")
raise KeyError("supplied an invalid checking_id")
async def get_payment_status(self, checking_id: str) -> PaymentStatus:
- r = self.ln.call("listpays", {"payment_hash": checking_id})
+ try:
+ r = self.ln.call("listpays", {"payment_hash": checking_id})
+ except:
+ return PaymentStatus(None)
if not r["pays"]:
- return PaymentStatus(False)
+ return PaymentStatus(None)
if r["pays"][0]["payment_hash"] == checking_id:
status = r["pays"][0]["status"]
if status == "complete":
@@ -146,7 +161,13 @@ class CLightningWallet(Wallet):
async def paid_invoices_stream(self) -> AsyncGenerator[str, None]:
while True:
- wrapped = async_wrap(_paid_invoices_stream)
- paid = await wrapped(self.ln, self.last_pay_index)
- self.last_pay_index = paid["pay_index"]
- yield paid["label"]
+ try:
+ wrapped = async_wrap(_paid_invoices_stream)
+ paid = await wrapped(self.ln, self.last_pay_index)
+ self.last_pay_index = paid["pay_index"]
+ yield paid["payment_hash"]
+ except Exception as exc:
+ logger.error(
+ f"lost connection to cln invoices stream: '{exc}', retrying in 5 seconds"
+ )
+ await asyncio.sleep(5)
diff --git a/lnbits/wallets/eclair.py b/lnbits/wallets/eclair.py
index ab99c699d..0a4f1f3e4 100644
--- a/lnbits/wallets/eclair.py
+++ b/lnbits/wallets/eclair.py
@@ -1,5 +1,6 @@
import asyncio
import base64
+import hashlib
import json
import urllib.parse
from os import getenv
@@ -72,7 +73,7 @@ class EclairWallet(Wallet):
data: Dict = {"amountMsat": amount * 1000}
if description_hash:
- data["description_hash"] = description_hash.hex()
+ data["description_hash"] = hashlib.sha256(description_hash).hexdigest()
else:
data["description"] = memo or ""
diff --git a/lnbits/wallets/fake.py b/lnbits/wallets/fake.py
index 3126ee46a..80a3d8c65 100644
--- a/lnbits/wallets/fake.py
+++ b/lnbits/wallets/fake.py
@@ -61,7 +61,7 @@ class FakeWallet(Wallet):
data["timestamp"] = datetime.now().timestamp()
if description_hash:
data["tags_set"] = ["h"]
- data["description_hash"] = description_hash.hex()
+ data["description_hash"] = description_hash.decode("utf-8")
else:
data["tags_set"] = ["d"]
data["memo"] = memo
diff --git a/lnbits/wallets/lnbits.py b/lnbits/wallets/lnbits.py
index d2ddb7ffc..677b518aa 100644
--- a/lnbits/wallets/lnbits.py
+++ b/lnbits/wallets/lnbits.py
@@ -1,4 +1,5 @@
import asyncio
+import hashlib
import json
from os import getenv
from typing import AsyncGenerator, Dict, Optional
@@ -59,7 +60,7 @@ class LNbitsWallet(Wallet):
) -> InvoiceResponse:
data: Dict = {"out": False, "amount": amount}
if description_hash:
- data["description_hash"] = description_hash.hex()
+ data["description_hash"] = hashlib.sha256(description_hash).hexdigest()
else:
data["memo"] = memo or ""
diff --git a/lnbits/wallets/lnd_grpc_files/lightning_pb2.py b/lnbits/wallets/lnd_grpc_files/lightning_pb2.py
index 9065e3f68..bac57e5b7 100644
--- a/lnbits/wallets/lnd_grpc_files/lightning_pb2.py
+++ b/lnbits/wallets/lnd_grpc_files/lightning_pb2.py
@@ -3,6 +3,7 @@
# source: lightning.proto
"""Generated protocol buffer code."""
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
@@ -13,699 +14,47 @@ from google.protobuf.internal import enum_type_wrapper
_sym_db = _symbol_database.Default()
-DESCRIPTOR = _descriptor.FileDescriptor(
- name="lightning.proto",
- package="lnrpc",
- syntax="proto3",
- serialized_options=b"Z%github.com/lightningnetwork/lnd/lnrpc",
- create_key=_descriptor._internal_create_key,
- serialized_pb=b'\n\x0flightning.proto\x12\x05lnrpc" \n\x1eSubscribeCustomMessagesRequest"9\n\rCustomMessage\x12\x0c\n\x04peer\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c"D\n\x18SendCustomMessageRequest\x12\x0c\n\x04peer\x18\x01 \x01(\x0c\x12\x0c\n\x04type\x18\x02 \x01(\r\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c"\x1b\n\x19SendCustomMessageResponse"\xa2\x01\n\x04Utxo\x12(\n\x0c\x61\x64\x64ress_type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x12\n\namount_sat\x18\x03 \x01(\x03\x12\x11\n\tpk_script\x18\x04 \x01(\t\x12!\n\x08outpoint\x18\x05 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x15\n\rconfirmations\x18\x06 \x01(\x03"\xd6\x01\n\x0bTransaction\x12\x0f\n\x07tx_hash\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x19\n\x11num_confirmations\x18\x03 \x01(\x05\x12\x12\n\nblock_hash\x18\x04 \x01(\t\x12\x14\n\x0c\x62lock_height\x18\x05 \x01(\x05\x12\x12\n\ntime_stamp\x18\x06 \x01(\x03\x12\x12\n\ntotal_fees\x18\x07 \x01(\x03\x12\x16\n\x0e\x64\x65st_addresses\x18\x08 \x03(\t\x12\x12\n\nraw_tx_hex\x18\t \x01(\t\x12\r\n\x05label\x18\n \x01(\t"S\n\x16GetTransactionsRequest\x12\x14\n\x0cstart_height\x18\x01 \x01(\x05\x12\x12\n\nend_height\x18\x02 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\t">\n\x12TransactionDetails\x12(\n\x0ctransactions\x18\x01 \x03(\x0b\x32\x12.lnrpc.Transaction"M\n\x08\x46\x65\x65Limit\x12\x0f\n\x05\x66ixed\x18\x01 \x01(\x03H\x00\x12\x14\n\nfixed_msat\x18\x03 \x01(\x03H\x00\x12\x11\n\x07percent\x18\x02 \x01(\x03H\x00\x42\x07\n\x05limit"\x8a\x04\n\x0bSendRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x17\n\x0b\x64\x65st_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x0b\n\x03\x61mt\x18\x03 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x05 \x01(\tB\x02\x18\x01\x12\x17\n\x0fpayment_request\x18\x06 \x01(\t\x12\x18\n\x10\x66inal_cltv_delta\x18\x07 \x01(\x05\x12"\n\tfee_limit\x18\x08 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x1c\n\x10outgoing_chan_id\x18\t \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\r \x01(\x0c\x12\x12\n\ncltv_limit\x18\n \x01(\r\x12\x46\n\x13\x64\x65st_custom_records\x18\x0b \x03(\x0b\x32).lnrpc.SendRequest.DestCustomRecordsEntry\x12\x1a\n\x12\x61llow_self_payment\x18\x0e \x01(\x08\x12(\n\rdest_features\x18\x0f \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x14\n\x0cpayment_addr\x18\x10 \x01(\x0c\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01"z\n\x0cSendResponse\x12\x15\n\rpayment_error\x18\x01 \x01(\t\x12\x18\n\x10payment_preimage\x18\x02 \x01(\x0c\x12#\n\rpayment_route\x18\x03 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0cpayment_hash\x18\x04 \x01(\x0c"n\n\x12SendToRouteRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1f\n\x13payment_hash_string\x18\x02 \x01(\tB\x02\x18\x01\x12\x1b\n\x05route\x18\x04 \x01(\x0b\x32\x0c.lnrpc.RouteJ\x04\x08\x03\x10\x04"\xe5\x02\n\x14\x43hannelAcceptRequest\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x03 \x01(\x0c\x12\x13\n\x0b\x66unding_amt\x18\x04 \x01(\x04\x12\x10\n\x08push_amt\x18\x05 \x01(\x04\x12\x12\n\ndust_limit\x18\x06 \x01(\x04\x12\x1b\n\x13max_value_in_flight\x18\x07 \x01(\x04\x12\x17\n\x0f\x63hannel_reserve\x18\x08 \x01(\x04\x12\x10\n\x08min_htlc\x18\t \x01(\x04\x12\x12\n\nfee_per_kw\x18\n \x01(\x04\x12\x11\n\tcsv_delay\x18\x0b \x01(\r\x12\x1a\n\x12max_accepted_htlcs\x18\x0c \x01(\r\x12\x15\n\rchannel_flags\x18\r \x01(\r\x12.\n\x0f\x63ommitment_type\x18\x0e \x01(\x0e\x32\x15.lnrpc.CommitmentType"\xf4\x01\n\x15\x43hannelAcceptResponse\x12\x0e\n\x06\x61\x63\x63\x65pt\x18\x01 \x01(\x08\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x18\n\x10upfront_shutdown\x18\x04 \x01(\t\x12\x11\n\tcsv_delay\x18\x05 \x01(\r\x12\x13\n\x0breserve_sat\x18\x06 \x01(\x04\x12\x1a\n\x12in_flight_max_msat\x18\x07 \x01(\x04\x12\x16\n\x0emax_htlc_count\x18\x08 \x01(\r\x12\x13\n\x0bmin_htlc_in\x18\t \x01(\x04\x12\x18\n\x10min_accept_depth\x18\n \x01(\r"n\n\x0c\x43hannelPoint\x12\x1c\n\x12\x66unding_txid_bytes\x18\x01 \x01(\x0cH\x00\x12\x1a\n\x10\x66unding_txid_str\x18\x02 \x01(\tH\x00\x12\x14\n\x0coutput_index\x18\x03 \x01(\rB\x0e\n\x0c\x66unding_txid"F\n\x08OutPoint\x12\x12\n\ntxid_bytes\x18\x01 \x01(\x0c\x12\x10\n\x08txid_str\x18\x02 \x01(\t\x12\x14\n\x0coutput_index\x18\x03 \x01(\r"0\n\x10LightningAddress\x12\x0e\n\x06pubkey\x18\x01 \x01(\t\x12\x0c\n\x04host\x18\x02 \x01(\t"\xcf\x01\n\x12\x45stimateFeeRequest\x12\x41\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32+.lnrpc.EstimateFeeRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x12\x11\n\tmin_confs\x18\x03 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x04 \x01(\x08\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01"_\n\x13\x45stimateFeeResponse\x12\x0f\n\x07\x66\x65\x65_sat\x18\x01 \x01(\x03\x12 \n\x14\x66\x65\x65rate_sat_per_byte\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\rsat_per_vbyte\x18\x03 \x01(\x04"\x89\x02\n\x0fSendManyRequest\x12>\n\x0c\x41\x64\x64rToAmount\x18\x01 \x03(\x0b\x32(.lnrpc.SendManyRequest.AddrToAmountEntry\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x04 \x01(\x04\x12\x18\n\x0csat_per_byte\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\r\n\x05label\x18\x06 \x01(\t\x12\x11\n\tmin_confs\x18\x07 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x08 \x01(\x08\x1a\x33\n\x11\x41\x64\x64rToAmountEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01" \n\x10SendManyResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t"\xc5\x01\n\x10SendCoinsRequest\x12\x0c\n\x04\x61\x64\x64r\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x04 \x01(\x04\x12\x18\n\x0csat_per_byte\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x10\n\x08send_all\x18\x06 \x01(\x08\x12\r\n\x05label\x18\x07 \x01(\t\x12\x11\n\tmin_confs\x18\x08 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\t \x01(\x08"!\n\x11SendCoinsResponse\x12\x0c\n\x04txid\x18\x01 \x01(\t"K\n\x12ListUnspentRequest\x12\x11\n\tmin_confs\x18\x01 \x01(\x05\x12\x11\n\tmax_confs\x18\x02 \x01(\x05\x12\x0f\n\x07\x61\x63\x63ount\x18\x03 \x01(\t"1\n\x13ListUnspentResponse\x12\x1a\n\x05utxos\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Utxo"F\n\x11NewAddressRequest\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.lnrpc.AddressType\x12\x0f\n\x07\x61\x63\x63ount\x18\x02 \x01(\t"%\n\x12NewAddressResponse\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t"6\n\x12SignMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x13\n\x0bsingle_hash\x18\x02 \x01(\x08"(\n\x13SignMessageResponse\x12\x11\n\tsignature\x18\x01 \x01(\t"6\n\x14VerifyMessageRequest\x12\x0b\n\x03msg\x18\x01 \x01(\x0c\x12\x11\n\tsignature\x18\x02 \x01(\t"6\n\x15VerifyMessageResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\x12\x0e\n\x06pubkey\x18\x02 \x01(\t"Z\n\x12\x43onnectPeerRequest\x12%\n\x04\x61\x64\x64r\x18\x01 \x01(\x0b\x32\x17.lnrpc.LightningAddress\x12\x0c\n\x04perm\x18\x02 \x01(\x08\x12\x0f\n\x07timeout\x18\x03 \x01(\x04"\x15\n\x13\x43onnectPeerResponse"(\n\x15\x44isconnectPeerRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t"\x18\n\x16\x44isconnectPeerResponse"\xa5\x01\n\x04HTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x11\n\thash_lock\x18\x03 \x01(\x0c\x12\x19\n\x11\x65xpiration_height\x18\x04 \x01(\r\x12\x12\n\nhtlc_index\x18\x05 \x01(\x04\x12\x1a\n\x12\x66orwarding_channel\x18\x06 \x01(\x04\x12\x1d\n\x15\x66orwarding_htlc_index\x18\x07 \x01(\x04"\xaa\x01\n\x12\x43hannelConstraints\x12\x11\n\tcsv_delay\x18\x01 \x01(\r\x12\x18\n\x10\x63han_reserve_sat\x18\x02 \x01(\x04\x12\x16\n\x0e\x64ust_limit_sat\x18\x03 \x01(\x04\x12\x1c\n\x14max_pending_amt_msat\x18\x04 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x04\x12\x1a\n\x12max_accepted_htlcs\x18\x06 \x01(\r"\xb0\x06\n\x07\x43hannel\x12\x0e\n\x06\x61\x63tive\x18\x01 \x01(\x08\x12\x15\n\rremote_pubkey\x18\x02 \x01(\t\x12\x15\n\rchannel_point\x18\x03 \x01(\t\x12\x13\n\x07\x63han_id\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x05 \x01(\x03\x12\x15\n\rlocal_balance\x18\x06 \x01(\x03\x12\x16\n\x0eremote_balance\x18\x07 \x01(\x03\x12\x12\n\ncommit_fee\x18\x08 \x01(\x03\x12\x15\n\rcommit_weight\x18\t \x01(\x03\x12\x12\n\nfee_per_kw\x18\n \x01(\x03\x12\x19\n\x11unsettled_balance\x18\x0b \x01(\x03\x12\x1b\n\x13total_satoshis_sent\x18\x0c \x01(\x03\x12\x1f\n\x17total_satoshis_received\x18\r \x01(\x03\x12\x13\n\x0bnum_updates\x18\x0e \x01(\x04\x12"\n\rpending_htlcs\x18\x0f \x03(\x0b\x32\x0b.lnrpc.HTLC\x12\x15\n\tcsv_delay\x18\x10 \x01(\rB\x02\x18\x01\x12\x0f\n\x07private\x18\x11 \x01(\x08\x12\x11\n\tinitiator\x18\x12 \x01(\x08\x12\x19\n\x11\x63han_status_flags\x18\x13 \x01(\t\x12"\n\x16local_chan_reserve_sat\x18\x14 \x01(\x03\x42\x02\x18\x01\x12#\n\x17remote_chan_reserve_sat\x18\x15 \x01(\x03\x42\x02\x18\x01\x12\x1d\n\x11static_remote_key\x18\x16 \x01(\x08\x42\x02\x18\x01\x12.\n\x0f\x63ommitment_type\x18\x1a \x01(\x0e\x32\x15.lnrpc.CommitmentType\x12\x10\n\x08lifetime\x18\x17 \x01(\x03\x12\x0e\n\x06uptime\x18\x18 \x01(\x03\x12\x15\n\rclose_address\x18\x19 \x01(\t\x12\x17\n\x0fpush_amount_sat\x18\x1b \x01(\x04\x12\x13\n\x0bthaw_height\x18\x1c \x01(\r\x12\x34\n\x11local_constraints\x18\x1d \x01(\x0b\x32\x19.lnrpc.ChannelConstraints\x12\x35\n\x12remote_constraints\x18\x1e \x01(\x0b\x32\x19.lnrpc.ChannelConstraints"z\n\x13ListChannelsRequest\x12\x13\n\x0b\x61\x63tive_only\x18\x01 \x01(\x08\x12\x15\n\rinactive_only\x18\x02 \x01(\x08\x12\x13\n\x0bpublic_only\x18\x03 \x01(\x08\x12\x14\n\x0cprivate_only\x18\x04 \x01(\x08\x12\x0c\n\x04peer\x18\x05 \x01(\x0c"8\n\x14ListChannelsResponse\x12 \n\x08\x63hannels\x18\x0b \x03(\x0b\x32\x0e.lnrpc.Channel"\xa9\x04\n\x13\x43hannelCloseSummary\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchain_hash\x18\x03 \x01(\t\x12\x17\n\x0f\x63losing_tx_hash\x18\x04 \x01(\t\x12\x15\n\rremote_pubkey\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12\x14\n\x0c\x63lose_height\x18\x07 \x01(\r\x12\x17\n\x0fsettled_balance\x18\x08 \x01(\x03\x12\x1b\n\x13time_locked_balance\x18\t \x01(\x03\x12:\n\nclose_type\x18\n \x01(\x0e\x32&.lnrpc.ChannelCloseSummary.ClosureType\x12(\n\x0eopen_initiator\x18\x0b \x01(\x0e\x32\x10.lnrpc.Initiator\x12)\n\x0f\x63lose_initiator\x18\x0c \x01(\x0e\x32\x10.lnrpc.Initiator\x12&\n\x0bresolutions\x18\r \x03(\x0b\x32\x11.lnrpc.Resolution"\x8a\x01\n\x0b\x43losureType\x12\x15\n\x11\x43OOPERATIVE_CLOSE\x10\x00\x12\x15\n\x11LOCAL_FORCE_CLOSE\x10\x01\x12\x16\n\x12REMOTE_FORCE_CLOSE\x10\x02\x12\x10\n\x0c\x42REACH_CLOSE\x10\x03\x12\x14\n\x10\x46UNDING_CANCELED\x10\x04\x12\r\n\tABANDONED\x10\x05"\xb2\x01\n\nResolution\x12.\n\x0fresolution_type\x18\x01 \x01(\x0e\x32\x15.lnrpc.ResolutionType\x12)\n\x07outcome\x18\x02 \x01(\x0e\x32\x18.lnrpc.ResolutionOutcome\x12!\n\x08outpoint\x18\x03 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12\x12\n\namount_sat\x18\x04 \x01(\x04\x12\x12\n\nsweep_txid\x18\x05 \x01(\t"\x94\x01\n\x15\x43losedChannelsRequest\x12\x13\n\x0b\x63ooperative\x18\x01 \x01(\x08\x12\x13\n\x0blocal_force\x18\x02 \x01(\x08\x12\x14\n\x0cremote_force\x18\x03 \x01(\x08\x12\x0e\n\x06\x62reach\x18\x04 \x01(\x08\x12\x18\n\x10\x66unding_canceled\x18\x05 \x01(\x08\x12\x11\n\tabandoned\x18\x06 \x01(\x08"F\n\x16\x43losedChannelsResponse\x12,\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x1a.lnrpc.ChannelCloseSummary"\xef\x03\n\x04Peer\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x12\n\nbytes_sent\x18\x04 \x01(\x04\x12\x12\n\nbytes_recv\x18\x05 \x01(\x04\x12\x10\n\x08sat_sent\x18\x06 \x01(\x03\x12\x10\n\x08sat_recv\x18\x07 \x01(\x03\x12\x0f\n\x07inbound\x18\x08 \x01(\x08\x12\x11\n\tping_time\x18\t \x01(\x03\x12\'\n\tsync_type\x18\n \x01(\x0e\x32\x14.lnrpc.Peer.SyncType\x12+\n\x08\x66\x65\x61tures\x18\x0b \x03(\x0b\x32\x19.lnrpc.Peer.FeaturesEntry\x12\'\n\x06\x65rrors\x18\x0c \x03(\x0b\x32\x17.lnrpc.TimestampedError\x12\x12\n\nflap_count\x18\r \x01(\x05\x12\x14\n\x0clast_flap_ns\x18\x0e \x01(\x03\x12\x19\n\x11last_ping_payload\x18\x0f \x01(\x0c\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01"P\n\x08SyncType\x12\x10\n\x0cUNKNOWN_SYNC\x10\x00\x12\x0f\n\x0b\x41\x43TIVE_SYNC\x10\x01\x12\x10\n\x0cPASSIVE_SYNC\x10\x02\x12\x0f\n\x0bPINNED_SYNC\x10\x03"4\n\x10TimestampedError\x12\x11\n\ttimestamp\x18\x01 \x01(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t"(\n\x10ListPeersRequest\x12\x14\n\x0clatest_error\x18\x01 \x01(\x08"/\n\x11ListPeersResponse\x12\x1a\n\x05peers\x18\x01 \x03(\x0b\x32\x0b.lnrpc.Peer"\x17\n\x15PeerEventSubscription"v\n\tPeerEvent\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12(\n\x04type\x18\x02 \x01(\x0e\x32\x1a.lnrpc.PeerEvent.EventType".\n\tEventType\x12\x0f\n\x0bPEER_ONLINE\x10\x00\x12\x10\n\x0cPEER_OFFLINE\x10\x01"\x10\n\x0eGetInfoRequest"\x96\x04\n\x0fGetInfoResponse\x12\x0f\n\x07version\x18\x0e \x01(\t\x12\x13\n\x0b\x63ommit_hash\x18\x14 \x01(\t\x12\x17\n\x0fidentity_pubkey\x18\x01 \x01(\t\x12\r\n\x05\x61lias\x18\x02 \x01(\t\x12\r\n\x05\x63olor\x18\x11 \x01(\t\x12\x1c\n\x14num_pending_channels\x18\x03 \x01(\r\x12\x1b\n\x13num_active_channels\x18\x04 \x01(\r\x12\x1d\n\x15num_inactive_channels\x18\x0f \x01(\r\x12\x11\n\tnum_peers\x18\x05 \x01(\r\x12\x14\n\x0c\x62lock_height\x18\x06 \x01(\r\x12\x12\n\nblock_hash\x18\x08 \x01(\t\x12\x1d\n\x15\x62\x65st_header_timestamp\x18\r \x01(\x03\x12\x17\n\x0fsynced_to_chain\x18\t \x01(\x08\x12\x17\n\x0fsynced_to_graph\x18\x12 \x01(\x08\x12\x13\n\x07testnet\x18\n \x01(\x08\x42\x02\x18\x01\x12\x1c\n\x06\x63hains\x18\x10 \x03(\x0b\x32\x0c.lnrpc.Chain\x12\x0c\n\x04uris\x18\x0c \x03(\t\x12\x36\n\x08\x66\x65\x61tures\x18\x13 \x03(\x0b\x32$.lnrpc.GetInfoResponse.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01J\x04\x08\x0b\x10\x0c"\x18\n\x16GetRecoveryInfoRequest"]\n\x17GetRecoveryInfoResponse\x12\x15\n\rrecovery_mode\x18\x01 \x01(\x08\x12\x19\n\x11recovery_finished\x18\x02 \x01(\x08\x12\x10\n\x08progress\x18\x03 \x01(\x01"\'\n\x05\x43hain\x12\r\n\x05\x63hain\x18\x01 \x01(\t\x12\x0f\n\x07network\x18\x02 \x01(\t"U\n\x12\x43onfirmationUpdate\x12\x11\n\tblock_sha\x18\x01 \x01(\x0c\x12\x14\n\x0c\x62lock_height\x18\x02 \x01(\x05\x12\x16\n\x0enum_confs_left\x18\x03 \x01(\r"?\n\x11\x43hannelOpenUpdate\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint";\n\x12\x43hannelCloseUpdate\x12\x14\n\x0c\x63losing_txid\x18\x01 \x01(\x0c\x12\x0f\n\x07success\x18\x02 \x01(\x08"\xb0\x01\n\x13\x43loseChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\r\n\x05\x66orce\x18\x02 \x01(\x08\x12\x13\n\x0btarget_conf\x18\x03 \x01(\x05\x12\x18\n\x0csat_per_byte\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10\x64\x65livery_address\x18\x05 \x01(\t\x12\x15\n\rsat_per_vbyte\x18\x06 \x01(\x04"}\n\x11\x43loseStatusUpdate\x12-\n\rclose_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12/\n\nchan_close\x18\x03 \x01(\x0b\x32\x19.lnrpc.ChannelCloseUpdateH\x00\x42\x08\n\x06update"3\n\rPendingUpdate\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x14\n\x0coutput_index\x18\x02 \x01(\r"T\n\x13ReadyForPsbtFunding\x12\x17\n\x0f\x66unding_address\x18\x01 \x01(\t\x12\x16\n\x0e\x66unding_amount\x18\x02 \x01(\x03\x12\x0c\n\x04psbt\x18\x03 \x01(\x0c"\xad\x01\n\x17\x42\x61tchOpenChannelRequest\x12)\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x17.lnrpc.BatchOpenChannel\x12\x13\n\x0btarget_conf\x18\x02 \x01(\x05\x12\x15\n\rsat_per_vbyte\x18\x03 \x01(\x03\x12\x11\n\tmin_confs\x18\x04 \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x05 \x01(\x08\x12\r\n\x05label\x18\x06 \x01(\t"\xf9\x01\n\x10\x42\x61tchOpenChannel\x12\x13\n\x0bnode_pubkey\x18\x01 \x01(\x0c\x12\x1c\n\x14local_funding_amount\x18\x02 \x01(\x03\x12\x10\n\x08push_sat\x18\x03 \x01(\x03\x12\x0f\n\x07private\x18\x04 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\x05 \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\x06 \x01(\r\x12\x15\n\rclose_address\x18\x07 \x01(\t\x12\x17\n\x0fpending_chan_id\x18\x08 \x01(\x0c\x12.\n\x0f\x63ommitment_type\x18\t \x01(\x0e\x32\x15.lnrpc.CommitmentType"J\n\x18\x42\x61tchOpenChannelResponse\x12.\n\x10pending_channels\x18\x01 \x03(\x0b\x32\x14.lnrpc.PendingUpdate"\xfa\x03\n\x12OpenChannelRequest\x12\x15\n\rsat_per_vbyte\x18\x01 \x01(\x04\x12\x13\n\x0bnode_pubkey\x18\x02 \x01(\x0c\x12\x1e\n\x12node_pubkey_string\x18\x03 \x01(\tB\x02\x18\x01\x12\x1c\n\x14local_funding_amount\x18\x04 \x01(\x03\x12\x10\n\x08push_sat\x18\x05 \x01(\x03\x12\x13\n\x0btarget_conf\x18\x06 \x01(\x05\x12\x18\n\x0csat_per_byte\x18\x07 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x07private\x18\x08 \x01(\x08\x12\x15\n\rmin_htlc_msat\x18\t \x01(\x03\x12\x18\n\x10remote_csv_delay\x18\n \x01(\r\x12\x11\n\tmin_confs\x18\x0b \x01(\x05\x12\x19\n\x11spend_unconfirmed\x18\x0c \x01(\x08\x12\x15\n\rclose_address\x18\r \x01(\t\x12(\n\x0c\x66unding_shim\x18\x0e \x01(\x0b\x32\x12.lnrpc.FundingShim\x12\'\n\x1fremote_max_value_in_flight_msat\x18\x0f \x01(\x04\x12\x18\n\x10remote_max_htlcs\x18\x10 \x01(\r\x12\x15\n\rmax_local_csv\x18\x11 \x01(\r\x12.\n\x0f\x63ommitment_type\x18\x12 \x01(\x0e\x32\x15.lnrpc.CommitmentType"\xc3\x01\n\x10OpenStatusUpdate\x12,\n\x0c\x63han_pending\x18\x01 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12-\n\tchan_open\x18\x03 \x01(\x0b\x32\x18.lnrpc.ChannelOpenUpdateH\x00\x12/\n\tpsbt_fund\x18\x05 \x01(\x0b\x32\x1a.lnrpc.ReadyForPsbtFundingH\x00\x12\x17\n\x0fpending_chan_id\x18\x04 \x01(\x0c\x42\x08\n\x06update"3\n\nKeyLocator\x12\x12\n\nkey_family\x18\x01 \x01(\x05\x12\x11\n\tkey_index\x18\x02 \x01(\x05"J\n\rKeyDescriptor\x12\x15\n\rraw_key_bytes\x18\x01 \x01(\x0c\x12"\n\x07key_loc\x18\x02 \x01(\x0b\x32\x11.lnrpc.KeyLocator"\xb0\x01\n\rChanPointShim\x12\x0b\n\x03\x61mt\x18\x01 \x01(\x03\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\'\n\tlocal_key\x18\x03 \x01(\x0b\x32\x14.lnrpc.KeyDescriptor\x12\x12\n\nremote_key\x18\x04 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x05 \x01(\x0c\x12\x13\n\x0bthaw_height\x18\x06 \x01(\r"J\n\x08PsbtShim\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c\x12\x11\n\tbase_psbt\x18\x02 \x01(\x0c\x12\x12\n\nno_publish\x18\x03 \x01(\x08"l\n\x0b\x46undingShim\x12/\n\x0f\x63han_point_shim\x18\x01 \x01(\x0b\x32\x14.lnrpc.ChanPointShimH\x00\x12$\n\tpsbt_shim\x18\x02 \x01(\x0b\x32\x0f.lnrpc.PsbtShimH\x00\x42\x06\n\x04shim",\n\x11\x46undingShimCancel\x12\x17\n\x0fpending_chan_id\x18\x01 \x01(\x0c"X\n\x11\x46undingPsbtVerify\x12\x13\n\x0b\x66unded_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x15\n\rskip_finalize\x18\x03 \x01(\x08"Y\n\x13\x46undingPsbtFinalize\x12\x13\n\x0bsigned_psbt\x18\x01 \x01(\x0c\x12\x17\n\x0fpending_chan_id\x18\x02 \x01(\x0c\x12\x14\n\x0c\x66inal_raw_tx\x18\x03 \x01(\x0c"\xe5\x01\n\x14\x46undingTransitionMsg\x12+\n\rshim_register\x18\x01 \x01(\x0b\x32\x12.lnrpc.FundingShimH\x00\x12/\n\x0bshim_cancel\x18\x02 \x01(\x0b\x32\x18.lnrpc.FundingShimCancelH\x00\x12/\n\x0bpsbt_verify\x18\x03 \x01(\x0b\x32\x18.lnrpc.FundingPsbtVerifyH\x00\x12\x33\n\rpsbt_finalize\x18\x04 \x01(\x0b\x32\x1a.lnrpc.FundingPsbtFinalizeH\x00\x42\t\n\x07trigger"\x16\n\x14\x46undingStateStepResp"\x86\x01\n\x0bPendingHTLC\x12\x10\n\x08incoming\x18\x01 \x01(\x08\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x12\x10\n\x08outpoint\x18\x03 \x01(\t\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\r\n\x05stage\x18\x06 \x01(\r"\x18\n\x16PendingChannelsRequest"\xcc\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\xb8\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\x1a\xb0\x01\n\x12PendingOpenChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x1b\n\x13\x63onfirmation_height\x18\x02 \x01(\r\x12\x12\n\ncommit_fee\x18\x04 \x01(\x03\x12\x15\n\rcommit_weight\x18\x05 \x01(\x03\x12\x12\n\nfee_per_kw\x18\x06 \x01(\x03\x1a\xad\x01\n\x13WaitingCloseChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x15\n\rlimbo_balance\x18\x02 \x01(\x03\x12?\n\x0b\x63ommitments\x18\x03 \x01(\x0b\x32*.lnrpc.PendingChannelsResponse.Commitments\x1a\xb7\x01\n\x0b\x43ommitments\x12\x12\n\nlocal_txid\x18\x01 \x01(\t\x12\x13\n\x0bremote_txid\x18\x02 \x01(\t\x12\x1b\n\x13remote_pending_txid\x18\x03 \x01(\t\x12\x1c\n\x14local_commit_fee_sat\x18\x04 \x01(\x04\x12\x1d\n\x15remote_commit_fee_sat\x18\x05 \x01(\x04\x12%\n\x1dremote_pending_commit_fee_sat\x18\x06 \x01(\x04\x1a\x65\n\rClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x1a\xff\x02\n\x12\x46orceClosedChannel\x12>\n\x07\x63hannel\x18\x01 \x01(\x0b\x32-.lnrpc.PendingChannelsResponse.PendingChannel\x12\x14\n\x0c\x63losing_txid\x18\x02 \x01(\t\x12\x15\n\rlimbo_balance\x18\x03 \x01(\x03\x12\x17\n\x0fmaturity_height\x18\x04 \x01(\r\x12\x1b\n\x13\x62locks_til_maturity\x18\x05 \x01(\x05\x12\x19\n\x11recovered_balance\x18\x06 \x01(\x03\x12)\n\rpending_htlcs\x18\x08 \x03(\x0b\x32\x12.lnrpc.PendingHTLC\x12M\n\x06\x61nchor\x18\t \x01(\x0e\x32=.lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState"1\n\x0b\x41nchorState\x12\t\n\x05LIMBO\x10\x00\x12\r\n\tRECOVERED\x10\x01\x12\x08\n\x04LOST\x10\x02"\x1a\n\x18\x43hannelEventSubscription"\x93\x04\n\x12\x43hannelEventUpdate\x12&\n\x0copen_channel\x18\x01 \x01(\x0b\x32\x0e.lnrpc.ChannelH\x00\x12\x34\n\x0e\x63losed_channel\x18\x02 \x01(\x0b\x32\x1a.lnrpc.ChannelCloseSummaryH\x00\x12-\n\x0e\x61\x63tive_channel\x18\x03 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12/\n\x10inactive_channel\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x34\n\x14pending_open_channel\x18\x06 \x01(\x0b\x32\x14.lnrpc.PendingUpdateH\x00\x12\x35\n\x16\x66ully_resolved_channel\x18\x07 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x32\n\x04type\x18\x05 \x01(\x0e\x32$.lnrpc.ChannelEventUpdate.UpdateType"\x92\x01\n\nUpdateType\x12\x10\n\x0cOPEN_CHANNEL\x10\x00\x12\x12\n\x0e\x43LOSED_CHANNEL\x10\x01\x12\x12\n\x0e\x41\x43TIVE_CHANNEL\x10\x02\x12\x14\n\x10INACTIVE_CHANNEL\x10\x03\x12\x18\n\x14PENDING_OPEN_CHANNEL\x10\x04\x12\x1a\n\x16\x46ULLY_RESOLVED_CHANNEL\x10\x05\x42\t\n\x07\x63hannel"N\n\x14WalletAccountBalance\x12\x19\n\x11\x63onfirmed_balance\x18\x01 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x02 \x01(\x03"\x16\n\x14WalletBalanceRequest"\x85\x02\n\x15WalletBalanceResponse\x12\x15\n\rtotal_balance\x18\x01 \x01(\x03\x12\x19\n\x11\x63onfirmed_balance\x18\x02 \x01(\x03\x12\x1b\n\x13unconfirmed_balance\x18\x03 \x01(\x03\x12I\n\x0f\x61\x63\x63ount_balance\x18\x04 \x03(\x0b\x32\x30.lnrpc.WalletBalanceResponse.AccountBalanceEntry\x1aR\n\x13\x41\x63\x63ountBalanceEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x1b.lnrpc.WalletAccountBalance:\x02\x38\x01"#\n\x06\x41mount\x12\x0b\n\x03sat\x18\x01 \x01(\x04\x12\x0c\n\x04msat\x18\x02 \x01(\x04"\x17\n\x15\x43hannelBalanceRequest"\xe4\x02\n\x16\x43hannelBalanceResponse\x12\x13\n\x07\x62\x61lance\x18\x01 \x01(\x03\x42\x02\x18\x01\x12 \n\x14pending_open_balance\x18\x02 \x01(\x03\x42\x02\x18\x01\x12$\n\rlocal_balance\x18\x03 \x01(\x0b\x32\r.lnrpc.Amount\x12%\n\x0eremote_balance\x18\x04 \x01(\x0b\x32\r.lnrpc.Amount\x12.\n\x17unsettled_local_balance\x18\x05 \x01(\x0b\x32\r.lnrpc.Amount\x12/\n\x18unsettled_remote_balance\x18\x06 \x01(\x0b\x32\r.lnrpc.Amount\x12\x31\n\x1apending_open_local_balance\x18\x07 \x01(\x0b\x32\r.lnrpc.Amount\x12\x32\n\x1bpending_open_remote_balance\x18\x08 \x01(\x0b\x32\r.lnrpc.Amount"\xd0\x04\n\x12QueryRoutesRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x0b\n\x03\x61mt\x18\x02 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x66inal_cltv_delta\x18\x04 \x01(\x05\x12"\n\tfee_limit\x18\x05 \x01(\x0b\x32\x0f.lnrpc.FeeLimit\x12\x15\n\rignored_nodes\x18\x06 \x03(\x0c\x12-\n\rignored_edges\x18\x07 \x03(\x0b\x32\x12.lnrpc.EdgeLocatorB\x02\x18\x01\x12\x16\n\x0esource_pub_key\x18\x08 \x01(\t\x12\x1b\n\x13use_mission_control\x18\t \x01(\x08\x12&\n\rignored_pairs\x18\n \x03(\x0b\x32\x0f.lnrpc.NodePair\x12\x12\n\ncltv_limit\x18\x0b \x01(\r\x12M\n\x13\x64\x65st_custom_records\x18\r \x03(\x0b\x32\x30.lnrpc.QueryRoutesRequest.DestCustomRecordsEntry\x12\x1c\n\x10outgoing_chan_id\x18\x0e \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0flast_hop_pubkey\x18\x0f \x01(\x0c\x12%\n\x0broute_hints\x18\x10 \x03(\x0b\x32\x10.lnrpc.RouteHint\x12(\n\rdest_features\x18\x11 \x03(\x0e\x32\x11.lnrpc.FeatureBit\x1a\x38\n\x16\x44\x65stCustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01J\x04\x08\x03\x10\x04"$\n\x08NodePair\x12\x0c\n\x04\x66rom\x18\x01 \x01(\x0c\x12\n\n\x02to\x18\x02 \x01(\x0c"@\n\x0b\x45\x64geLocator\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\x11\x64irection_reverse\x18\x02 \x01(\x08"I\n\x13QueryRoutesResponse\x12\x1c\n\x06routes\x18\x01 \x03(\x0b\x32\x0c.lnrpc.Route\x12\x14\n\x0csuccess_prob\x18\x02 \x01(\x01"\x80\x03\n\x03Hop\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x19\n\rchan_capacity\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x1a\n\x0e\x61mt_to_forward\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x04 \x01(\x03\x42\x02\x18\x01\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\r\x12\x1b\n\x13\x61mt_to_forward_msat\x18\x06 \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x07 \x01(\x03\x12\x0f\n\x07pub_key\x18\x08 \x01(\t\x12\x13\n\x0btlv_payload\x18\t \x01(\x08\x12$\n\nmpp_record\x18\n \x01(\x0b\x32\x10.lnrpc.MPPRecord\x12$\n\namp_record\x18\x0c \x01(\x0b\x32\x10.lnrpc.AMPRecord\x12\x35\n\x0e\x63ustom_records\x18\x0b \x03(\x0b\x32\x1d.lnrpc.Hop.CustomRecordsEntry\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01"9\n\tMPPRecord\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x16\n\x0etotal_amt_msat\x18\n \x01(\x03"D\n\tAMPRecord\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r"\x9a\x01\n\x05Route\x12\x17\n\x0ftotal_time_lock\x18\x01 \x01(\r\x12\x16\n\ntotal_fees\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x15\n\ttotal_amt\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x04hops\x18\x04 \x03(\x0b\x32\n.lnrpc.Hop\x12\x17\n\x0ftotal_fees_msat\x18\x05 \x01(\x03\x12\x16\n\x0etotal_amt_msat\x18\x06 \x01(\x03"<\n\x0fNodeInfoRequest\x12\x0f\n\x07pub_key\x18\x01 \x01(\t\x12\x18\n\x10include_channels\x18\x02 \x01(\x08"\x82\x01\n\x08NodeInfo\x12"\n\x04node\x18\x01 \x01(\x0b\x32\x14.lnrpc.LightningNode\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x16\n\x0etotal_capacity\x18\x03 \x01(\x03\x12$\n\x08\x63hannels\x18\x04 \x03(\x0b\x32\x12.lnrpc.ChannelEdge"\xf1\x01\n\rLightningNode\x12\x13\n\x0blast_update\x18\x01 \x01(\r\x12\x0f\n\x07pub_key\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12%\n\taddresses\x18\x04 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12\x34\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32".lnrpc.LightningNode.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01",\n\x0bNodeAddress\x12\x0f\n\x07network\x18\x01 \x01(\t\x12\x0c\n\x04\x61\x64\x64r\x18\x02 \x01(\t"\xac\x01\n\rRoutingPolicy\x12\x17\n\x0ftime_lock_delta\x18\x01 \x01(\r\x12\x10\n\x08min_htlc\x18\x02 \x01(\x03\x12\x15\n\rfee_base_msat\x18\x03 \x01(\x03\x12\x1b\n\x13\x66\x65\x65_rate_milli_msat\x18\x04 \x01(\x03\x12\x10\n\x08\x64isabled\x18\x05 \x01(\x08\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x13\n\x0blast_update\x18\x07 \x01(\r"\xe2\x01\n\x0b\x43hannelEdge\x12\x16\n\nchannel_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nchan_point\x18\x02 \x01(\t\x12\x17\n\x0blast_update\x18\x03 \x01(\rB\x02\x18\x01\x12\x11\n\tnode1_pub\x18\x04 \x01(\t\x12\x11\n\tnode2_pub\x18\x05 \x01(\t\x12\x10\n\x08\x63\x61pacity\x18\x06 \x01(\x03\x12*\n\x0cnode1_policy\x18\x07 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12*\n\x0cnode2_policy\x18\x08 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy"2\n\x13\x43hannelGraphRequest\x12\x1b\n\x13include_unannounced\x18\x01 \x01(\x08"V\n\x0c\x43hannelGraph\x12#\n\x05nodes\x18\x01 \x03(\x0b\x32\x14.lnrpc.LightningNode\x12!\n\x05\x65\x64ges\x18\x02 \x03(\x0b\x32\x12.lnrpc.ChannelEdge":\n\x12NodeMetricsRequest\x12$\n\x05types\x18\x01 \x03(\x0e\x32\x15.lnrpc.NodeMetricType"\xbe\x01\n\x13NodeMetricsResponse\x12U\n\x16\x62\x65tweenness_centrality\x18\x01 \x03(\x0b\x32\x35.lnrpc.NodeMetricsResponse.BetweennessCentralityEntry\x1aP\n\x1a\x42\x65tweennessCentralityEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.lnrpc.FloatMetric:\x02\x38\x01"6\n\x0b\x46loatMetric\x12\r\n\x05value\x18\x01 \x01(\x01\x12\x18\n\x10normalized_value\x18\x02 \x01(\x01"&\n\x0f\x43hanInfoRequest\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01"\x14\n\x12NetworkInfoRequest"\xa7\x02\n\x0bNetworkInfo\x12\x16\n\x0egraph_diameter\x18\x01 \x01(\r\x12\x16\n\x0e\x61vg_out_degree\x18\x02 \x01(\x01\x12\x16\n\x0emax_out_degree\x18\x03 \x01(\r\x12\x11\n\tnum_nodes\x18\x04 \x01(\r\x12\x14\n\x0cnum_channels\x18\x05 \x01(\r\x12\x1e\n\x16total_network_capacity\x18\x06 \x01(\x03\x12\x18\n\x10\x61vg_channel_size\x18\x07 \x01(\x01\x12\x18\n\x10min_channel_size\x18\x08 \x01(\x03\x12\x18\n\x10max_channel_size\x18\t \x01(\x03\x12\x1f\n\x17median_channel_size_sat\x18\n \x01(\x03\x12\x18\n\x10num_zombie_chans\x18\x0b \x01(\x04"\r\n\x0bStopRequest"\x0e\n\x0cStopResponse"\x1b\n\x19GraphTopologySubscription"\xa3\x01\n\x13GraphTopologyUpdate\x12\'\n\x0cnode_updates\x18\x01 \x03(\x0b\x32\x11.lnrpc.NodeUpdate\x12\x31\n\x0f\x63hannel_updates\x18\x02 \x03(\x0b\x32\x18.lnrpc.ChannelEdgeUpdate\x12\x30\n\x0c\x63losed_chans\x18\x03 \x03(\x0b\x32\x1a.lnrpc.ClosedChannelUpdate"\x94\x02\n\nNodeUpdate\x12\x15\n\taddresses\x18\x01 \x03(\tB\x02\x18\x01\x12\x14\n\x0cidentity_key\x18\x02 \x01(\t\x12\x1b\n\x0fglobal_features\x18\x03 \x01(\x0c\x42\x02\x18\x01\x12\r\n\x05\x61lias\x18\x04 \x01(\t\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12*\n\x0enode_addresses\x18\x07 \x03(\x0b\x32\x12.lnrpc.NodeAddress\x12\x31\n\x08\x66\x65\x61tures\x18\x06 \x03(\x0b\x32\x1f.lnrpc.NodeUpdate.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01"\xc4\x01\n\x11\x43hannelEdgeUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\'\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x10\n\x08\x63\x61pacity\x18\x03 \x01(\x03\x12,\n\x0erouting_policy\x18\x04 \x01(\x0b\x32\x14.lnrpc.RoutingPolicy\x12\x18\n\x10\x61\x64vertising_node\x18\x05 \x01(\t\x12\x17\n\x0f\x63onnecting_node\x18\x06 \x01(\t"|\n\x13\x43losedChannelUpdate\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x10\n\x08\x63\x61pacity\x18\x02 \x01(\x03\x12\x15\n\rclosed_height\x18\x03 \x01(\r\x12\'\n\nchan_point\x18\x04 \x01(\x0b\x32\x13.lnrpc.ChannelPoint"\x86\x01\n\x07HopHint\x12\x0f\n\x07node_id\x18\x01 \x01(\t\x12\x13\n\x07\x63han_id\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rfee_base_msat\x18\x03 \x01(\r\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x04 \x01(\r\x12\x19\n\x11\x63ltv_expiry_delta\x18\x05 \x01(\r"\x17\n\x05SetID\x12\x0e\n\x06set_id\x18\x01 \x01(\x0c".\n\tRouteHint\x12!\n\thop_hints\x18\x01 \x03(\x0b\x32\x0e.lnrpc.HopHint"{\n\x0f\x41MPInvoiceState\x12&\n\x05state\x18\x01 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04\x12\x13\n\x0bsettle_time\x18\x03 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x05 \x01(\x03"\x85\x07\n\x07Invoice\x12\x0c\n\x04memo\x18\x01 \x01(\t\x12\x12\n\nr_preimage\x18\x03 \x01(\x0c\x12\x0e\n\x06r_hash\x18\x04 \x01(\x0c\x12\r\n\x05value\x18\x05 \x01(\x03\x12\x12\n\nvalue_msat\x18\x17 \x01(\x03\x12\x13\n\x07settled\x18\x06 \x01(\x08\x42\x02\x18\x01\x12\x15\n\rcreation_date\x18\x07 \x01(\x03\x12\x13\n\x0bsettle_date\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\n \x01(\x0c\x12\x0e\n\x06\x65xpiry\x18\x0b \x01(\x03\x12\x15\n\rfallback_addr\x18\x0c \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\r \x01(\x04\x12%\n\x0broute_hints\x18\x0e \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x0f\n\x07private\x18\x0f \x01(\x08\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0csettle_index\x18\x11 \x01(\x04\x12\x14\n\x08\x61mt_paid\x18\x12 \x01(\x03\x42\x02\x18\x01\x12\x14\n\x0c\x61mt_paid_sat\x18\x13 \x01(\x03\x12\x15\n\ramt_paid_msat\x18\x14 \x01(\x03\x12*\n\x05state\x18\x15 \x01(\x0e\x32\x1b.lnrpc.Invoice.InvoiceState\x12!\n\x05htlcs\x18\x16 \x03(\x0b\x32\x12.lnrpc.InvoiceHTLC\x12.\n\x08\x66\x65\x61tures\x18\x18 \x03(\x0b\x32\x1c.lnrpc.Invoice.FeaturesEntry\x12\x12\n\nis_keysend\x18\x19 \x01(\x08\x12\x14\n\x0cpayment_addr\x18\x1a \x01(\x0c\x12\x0e\n\x06is_amp\x18\x1b \x01(\x08\x12>\n\x11\x61mp_invoice_state\x18\x1c \x03(\x0b\x32#.lnrpc.Invoice.AmpInvoiceStateEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01\x1aN\n\x14\x41mpInvoiceStateEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.lnrpc.AMPInvoiceState:\x02\x38\x01"A\n\x0cInvoiceState\x12\x08\n\x04OPEN\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x03J\x04\x08\x02\x10\x03"\xf3\x02\n\x0bInvoiceHTLC\x12\x13\n\x07\x63han_id\x18\x01 \x01(\x04\x42\x02\x30\x01\x12\x12\n\nhtlc_index\x18\x02 \x01(\x04\x12\x10\n\x08\x61mt_msat\x18\x03 \x01(\x04\x12\x15\n\raccept_height\x18\x04 \x01(\x05\x12\x13\n\x0b\x61\x63\x63\x65pt_time\x18\x05 \x01(\x03\x12\x14\n\x0cresolve_time\x18\x06 \x01(\x03\x12\x15\n\rexpiry_height\x18\x07 \x01(\x05\x12&\n\x05state\x18\x08 \x01(\x0e\x32\x17.lnrpc.InvoiceHTLCState\x12=\n\x0e\x63ustom_records\x18\t \x03(\x0b\x32%.lnrpc.InvoiceHTLC.CustomRecordsEntry\x12\x1a\n\x12mpp_total_amt_msat\x18\n \x01(\x04\x12\x17\n\x03\x61mp\x18\x0b \x01(\x0b\x32\n.lnrpc.AMP\x1a\x34\n\x12\x43ustomRecordsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01"^\n\x03\x41MP\x12\x12\n\nroot_share\x18\x01 \x01(\x0c\x12\x0e\n\x06set_id\x18\x02 \x01(\x0c\x12\x13\n\x0b\x63hild_index\x18\x03 \x01(\r\x12\x0c\n\x04hash\x18\x04 \x01(\x0c\x12\x10\n\x08preimage\x18\x05 \x01(\x0c"f\n\x12\x41\x64\x64InvoiceResponse\x12\x0e\n\x06r_hash\x18\x01 \x01(\x0c\x12\x17\n\x0fpayment_request\x18\x02 \x01(\t\x12\x11\n\tadd_index\x18\x10 \x01(\x04\x12\x14\n\x0cpayment_addr\x18\x11 \x01(\x0c"5\n\x0bPaymentHash\x12\x16\n\nr_hash_str\x18\x01 \x01(\tB\x02\x18\x01\x12\x0e\n\x06r_hash\x18\x02 \x01(\x0c"l\n\x12ListInvoiceRequest\x12\x14\n\x0cpending_only\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x04 \x01(\x04\x12\x18\n\x10num_max_invoices\x18\x05 \x01(\x04\x12\x10\n\x08reversed\x18\x06 \x01(\x08"n\n\x13ListInvoiceResponse\x12 \n\x08invoices\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Invoice\x12\x19\n\x11last_index_offset\x18\x02 \x01(\x04\x12\x1a\n\x12\x66irst_index_offset\x18\x03 \x01(\x04">\n\x13InvoiceSubscription\x12\x11\n\tadd_index\x18\x01 \x01(\x04\x12\x14\n\x0csettle_index\x18\x02 \x01(\x04"\xe0\x03\n\x07Payment\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\t\x12\x11\n\x05value\x18\x02 \x01(\x03\x42\x02\x18\x01\x12\x19\n\rcreation_date\x18\x03 \x01(\x03\x42\x02\x18\x01\x12\x0f\n\x03\x66\x65\x65\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x18\n\x10payment_preimage\x18\x06 \x01(\t\x12\x11\n\tvalue_sat\x18\x07 \x01(\x03\x12\x12\n\nvalue_msat\x18\x08 \x01(\x03\x12\x17\n\x0fpayment_request\x18\t \x01(\t\x12,\n\x06status\x18\n \x01(\x0e\x32\x1c.lnrpc.Payment.PaymentStatus\x12\x0f\n\x07\x66\x65\x65_sat\x18\x0b \x01(\x03\x12\x10\n\x08\x66\x65\x65_msat\x18\x0c \x01(\x03\x12\x18\n\x10\x63reation_time_ns\x18\r \x01(\x03\x12!\n\x05htlcs\x18\x0e \x03(\x0b\x32\x12.lnrpc.HTLCAttempt\x12\x15\n\rpayment_index\x18\x0f \x01(\x04\x12\x33\n\x0e\x66\x61ilure_reason\x18\x10 \x01(\x0e\x32\x1b.lnrpc.PaymentFailureReason"F\n\rPaymentStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tIN_FLIGHT\x10\x01\x12\r\n\tSUCCEEDED\x10\x02\x12\n\n\x06\x46\x41ILED\x10\x03J\x04\x08\x04\x10\x05"\x8a\x02\n\x0bHTLCAttempt\x12\x12\n\nattempt_id\x18\x07 \x01(\x04\x12-\n\x06status\x18\x01 \x01(\x0e\x32\x1d.lnrpc.HTLCAttempt.HTLCStatus\x12\x1b\n\x05route\x18\x02 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x17\n\x0f\x61ttempt_time_ns\x18\x03 \x01(\x03\x12\x17\n\x0fresolve_time_ns\x18\x04 \x01(\x03\x12\x1f\n\x07\x66\x61ilure\x18\x05 \x01(\x0b\x32\x0e.lnrpc.Failure\x12\x10\n\x08preimage\x18\x06 \x01(\x0c"6\n\nHTLCStatus\x12\r\n\tIN_FLIGHT\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02"o\n\x13ListPaymentsRequest\x12\x1a\n\x12include_incomplete\x18\x01 \x01(\x08\x12\x14\n\x0cindex_offset\x18\x02 \x01(\x04\x12\x14\n\x0cmax_payments\x18\x03 \x01(\x04\x12\x10\n\x08reversed\x18\x04 \x01(\x08"o\n\x14ListPaymentsResponse\x12 \n\x08payments\x18\x01 \x03(\x0b\x32\x0e.lnrpc.Payment\x12\x1a\n\x12\x66irst_index_offset\x18\x02 \x01(\x04\x12\x19\n\x11last_index_offset\x18\x03 \x01(\x04"G\n\x14\x44\x65letePaymentRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08"S\n\x18\x44\x65leteAllPaymentsRequest\x12\x1c\n\x14\x66\x61iled_payments_only\x18\x01 \x01(\x08\x12\x19\n\x11\x66\x61iled_htlcs_only\x18\x02 \x01(\x08"\x17\n\x15\x44\x65letePaymentResponse"\x1b\n\x19\x44\x65leteAllPaymentsResponse"\x86\x01\n\x15\x41\x62\x61ndonChannelRequest\x12*\n\rchannel_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12!\n\x19pending_funding_shim_only\x18\x02 \x01(\x08\x12\x1e\n\x16i_know_what_i_am_doing\x18\x03 \x01(\x08"\x18\n\x16\x41\x62\x61ndonChannelResponse"5\n\x11\x44\x65\x62ugLevelRequest\x12\x0c\n\x04show\x18\x01 \x01(\x08\x12\x12\n\nlevel_spec\x18\x02 \x01(\t")\n\x12\x44\x65\x62ugLevelResponse\x12\x13\n\x0bsub_systems\x18\x01 \x01(\t"\x1f\n\x0cPayReqString\x12\x0f\n\x07pay_req\x18\x01 \x01(\t"\x86\x03\n\x06PayReq\x12\x13\n\x0b\x64\x65stination\x18\x01 \x01(\t\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\t\x12\x14\n\x0cnum_satoshis\x18\x03 \x01(\x03\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\x12\x0e\n\x06\x65xpiry\x18\x05 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x06 \x01(\t\x12\x18\n\x10\x64\x65scription_hash\x18\x07 \x01(\t\x12\x15\n\rfallback_addr\x18\x08 \x01(\t\x12\x13\n\x0b\x63ltv_expiry\x18\t \x01(\x03\x12%\n\x0broute_hints\x18\n \x03(\x0b\x32\x10.lnrpc.RouteHint\x12\x14\n\x0cpayment_addr\x18\x0b \x01(\x0c\x12\x10\n\x08num_msat\x18\x0c \x01(\x03\x12-\n\x08\x66\x65\x61tures\x18\r \x03(\x0b\x32\x1b.lnrpc.PayReq.FeaturesEntry\x1a?\n\rFeaturesEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Feature:\x02\x38\x01">\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0bis_required\x18\x03 \x01(\x08\x12\x10\n\x08is_known\x18\x04 \x01(\x08"\x12\n\x10\x46\x65\x65ReportRequest"|\n\x10\x43hannelFeeReport\x12\x13\n\x07\x63han_id\x18\x05 \x01(\x04\x42\x02\x30\x01\x12\x15\n\rchannel_point\x18\x01 \x01(\t\x12\x15\n\rbase_fee_msat\x18\x02 \x01(\x03\x12\x13\n\x0b\x66\x65\x65_per_mil\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01"\x84\x01\n\x11\x46\x65\x65ReportResponse\x12-\n\x0c\x63hannel_fees\x18\x01 \x03(\x0b\x32\x17.lnrpc.ChannelFeeReport\x12\x13\n\x0b\x64\x61y_fee_sum\x18\x02 \x01(\x04\x12\x14\n\x0cweek_fee_sum\x18\x03 \x01(\x04\x12\x15\n\rmonth_fee_sum\x18\x04 \x01(\x04"\xec\x01\n\x13PolicyUpdateRequest\x12\x10\n\x06global\x18\x01 \x01(\x08H\x00\x12)\n\nchan_point\x18\x02 \x01(\x0b\x32\x13.lnrpc.ChannelPointH\x00\x12\x15\n\rbase_fee_msat\x18\x03 \x01(\x03\x12\x10\n\x08\x66\x65\x65_rate\x18\x04 \x01(\x01\x12\x17\n\x0ftime_lock_delta\x18\x05 \x01(\r\x12\x15\n\rmax_htlc_msat\x18\x06 \x01(\x04\x12\x15\n\rmin_htlc_msat\x18\x07 \x01(\x04\x12\x1f\n\x17min_htlc_msat_specified\x18\x08 \x01(\x08\x42\x07\n\x05scope"m\n\x0c\x46\x61iledUpdate\x12!\n\x08outpoint\x18\x01 \x01(\x0b\x32\x0f.lnrpc.OutPoint\x12$\n\x06reason\x18\x02 \x01(\x0e\x32\x14.lnrpc.UpdateFailure\x12\x14\n\x0cupdate_error\x18\x03 \x01(\t"C\n\x14PolicyUpdateResponse\x12+\n\x0e\x66\x61iled_updates\x18\x01 \x03(\x0b\x32\x13.lnrpc.FailedUpdate"n\n\x18\x46orwardingHistoryRequest\x12\x12\n\nstart_time\x18\x01 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x02 \x01(\x04\x12\x14\n\x0cindex_offset\x18\x03 \x01(\r\x12\x16\n\x0enum_max_events\x18\x04 \x01(\r"\xda\x01\n\x0f\x46orwardingEvent\x12\x15\n\ttimestamp\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x16\n\nchan_id_in\x18\x02 \x01(\x04\x42\x02\x30\x01\x12\x17\n\x0b\x63han_id_out\x18\x04 \x01(\x04\x42\x02\x30\x01\x12\x0e\n\x06\x61mt_in\x18\x05 \x01(\x04\x12\x0f\n\x07\x61mt_out\x18\x06 \x01(\x04\x12\x0b\n\x03\x66\x65\x65\x18\x07 \x01(\x04\x12\x10\n\x08\x66\x65\x65_msat\x18\x08 \x01(\x04\x12\x13\n\x0b\x61mt_in_msat\x18\t \x01(\x04\x12\x14\n\x0c\x61mt_out_msat\x18\n \x01(\x04\x12\x14\n\x0ctimestamp_ns\x18\x0b \x01(\x04"i\n\x19\x46orwardingHistoryResponse\x12\x31\n\x11\x66orwarding_events\x18\x01 \x03(\x0b\x32\x16.lnrpc.ForwardingEvent\x12\x19\n\x11last_offset_index\x18\x02 \x01(\r"E\n\x1a\x45xportChannelBackupRequest\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint"M\n\rChannelBackup\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x13\n\x0b\x63han_backup\x18\x02 \x01(\x0c"V\n\x0fMultiChanBackup\x12(\n\x0b\x63han_points\x18\x01 \x03(\x0b\x32\x13.lnrpc.ChannelPoint\x12\x19\n\x11multi_chan_backup\x18\x02 \x01(\x0c"\x19\n\x17\x43hanBackupExportRequest"{\n\x12\x43hanBackupSnapshot\x12\x32\n\x13single_chan_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackups\x12\x31\n\x11multi_chan_backup\x18\x02 \x01(\x0b\x32\x16.lnrpc.MultiChanBackup"<\n\x0e\x43hannelBackups\x12*\n\x0c\x63han_backups\x18\x01 \x03(\x0b\x32\x14.lnrpc.ChannelBackup"p\n\x18RestoreChanBackupRequest\x12-\n\x0c\x63han_backups\x18\x01 \x01(\x0b\x32\x15.lnrpc.ChannelBackupsH\x00\x12\x1b\n\x11multi_chan_backup\x18\x02 \x01(\x0cH\x00\x42\x08\n\x06\x62\x61\x63kup"\x17\n\x15RestoreBackupResponse"\x1b\n\x19\x43hannelBackupSubscription"\x1a\n\x18VerifyChanBackupResponse"4\n\x12MacaroonPermission\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x02 \x01(\t"~\n\x13\x42\x61keMacaroonRequest\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x13\n\x0broot_key_id\x18\x02 \x01(\x04\x12"\n\x1a\x61llow_external_permissions\x18\x03 \x01(\x08"(\n\x14\x42\x61keMacaroonResponse\x12\x10\n\x08macaroon\x18\x01 \x01(\t"\x18\n\x16ListMacaroonIDsRequest"/\n\x17ListMacaroonIDsResponse\x12\x14\n\x0croot_key_ids\x18\x01 \x03(\x04".\n\x17\x44\x65leteMacaroonIDRequest\x12\x13\n\x0broot_key_id\x18\x01 \x01(\x04"+\n\x18\x44\x65leteMacaroonIDResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08"H\n\x16MacaroonPermissionList\x12.\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission"\x18\n\x16ListPermissionsRequest"\xc5\x01\n\x17ListPermissionsResponse\x12Q\n\x12method_permissions\x18\x01 \x03(\x0b\x32\x35.lnrpc.ListPermissionsResponse.MethodPermissionsEntry\x1aW\n\x16MethodPermissionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MacaroonPermissionList:\x02\x38\x01"\xd5\x07\n\x07\x46\x61ilure\x12(\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12,\n\x0e\x63hannel_update\x18\x03 \x01(\x0b\x32\x14.lnrpc.ChannelUpdate\x12\x11\n\thtlc_msat\x18\x04 \x01(\x04\x12\x15\n\ronion_sha_256\x18\x05 \x01(\x0c\x12\x13\n\x0b\x63ltv_expiry\x18\x06 \x01(\r\x12\r\n\x05\x66lags\x18\x07 \x01(\r\x12\x1c\n\x14\x66\x61ilure_source_index\x18\x08 \x01(\r\x12\x0e\n\x06height\x18\t \x01(\r"\xef\x05\n\x0b\x46\x61ilureCode\x12\x0c\n\x08RESERVED\x10\x00\x12(\n$INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS\x10\x01\x12\x1c\n\x18INCORRECT_PAYMENT_AMOUNT\x10\x02\x12\x1f\n\x1b\x46INAL_INCORRECT_CLTV_EXPIRY\x10\x03\x12\x1f\n\x1b\x46INAL_INCORRECT_HTLC_AMOUNT\x10\x04\x12\x19\n\x15\x46INAL_EXPIRY_TOO_SOON\x10\x05\x12\x11\n\rINVALID_REALM\x10\x06\x12\x13\n\x0f\x45XPIRY_TOO_SOON\x10\x07\x12\x19\n\x15INVALID_ONION_VERSION\x10\x08\x12\x16\n\x12INVALID_ONION_HMAC\x10\t\x12\x15\n\x11INVALID_ONION_KEY\x10\n\x12\x18\n\x14\x41MOUNT_BELOW_MINIMUM\x10\x0b\x12\x14\n\x10\x46\x45\x45_INSUFFICIENT\x10\x0c\x12\x19\n\x15INCORRECT_CLTV_EXPIRY\x10\r\x12\x14\n\x10\x43HANNEL_DISABLED\x10\x0e\x12\x1d\n\x19TEMPORARY_CHANNEL_FAILURE\x10\x0f\x12!\n\x1dREQUIRED_NODE_FEATURE_MISSING\x10\x10\x12$\n REQUIRED_CHANNEL_FEATURE_MISSING\x10\x11\x12\x15\n\x11UNKNOWN_NEXT_PEER\x10\x12\x12\x1a\n\x16TEMPORARY_NODE_FAILURE\x10\x13\x12\x1a\n\x16PERMANENT_NODE_FAILURE\x10\x14\x12\x1d\n\x19PERMANENT_CHANNEL_FAILURE\x10\x15\x12\x12\n\x0e\x45XPIRY_TOO_FAR\x10\x16\x12\x0f\n\x0bMPP_TIMEOUT\x10\x17\x12\x19\n\x15INVALID_ONION_PAYLOAD\x10\x18\x12\x15\n\x10INTERNAL_FAILURE\x10\xe5\x07\x12\x14\n\x0fUNKNOWN_FAILURE\x10\xe6\x07\x12\x17\n\x12UNREADABLE_FAILURE\x10\xe7\x07J\x04\x08\x02\x10\x03"\x9a\x02\n\rChannelUpdate\x12\x11\n\tsignature\x18\x01 \x01(\x0c\x12\x12\n\nchain_hash\x18\x02 \x01(\x0c\x12\x13\n\x07\x63han_id\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x11\n\ttimestamp\x18\x04 \x01(\r\x12\x15\n\rmessage_flags\x18\n \x01(\r\x12\x15\n\rchannel_flags\x18\x05 \x01(\r\x12\x17\n\x0ftime_lock_delta\x18\x06 \x01(\r\x12\x19\n\x11htlc_minimum_msat\x18\x07 \x01(\x04\x12\x10\n\x08\x62\x61se_fee\x18\x08 \x01(\r\x12\x10\n\x08\x66\x65\x65_rate\x18\t \x01(\r\x12\x19\n\x11htlc_maximum_msat\x18\x0b \x01(\x04\x12\x19\n\x11\x65xtra_opaque_data\x18\x0c \x01(\x0c"F\n\nMacaroonId\x12\r\n\x05nonce\x18\x01 \x01(\x0c\x12\x11\n\tstorageId\x18\x02 \x01(\x0c\x12\x16\n\x03ops\x18\x03 \x03(\x0b\x32\t.lnrpc.Op"%\n\x02Op\x12\x0e\n\x06\x65ntity\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63tions\x18\x02 \x03(\t"k\n\x13\x43heckMacPermRequest\x12\x10\n\x08macaroon\x18\x01 \x01(\x0c\x12.\n\x0bpermissions\x18\x02 \x03(\x0b\x32\x19.lnrpc.MacaroonPermission\x12\x12\n\nfullMethod\x18\x03 \x01(\t"%\n\x14\x43heckMacPermResponse\x12\r\n\x05valid\x18\x01 \x01(\x08"\xea\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\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\nrequest_id\x18\x01 \x01(\x04\x12\x31\n\x08register\x18\x02 \x01(\x0b\x32\x1d.lnrpc.MiddlewareRegistrationH\x00\x12,\n\x08\x66\x65\x65\x64\x62\x61\x63k\x18\x03 \x01(\x0b\x32\x18.lnrpc.InterceptFeedbackH\x00\x42\x14\n\x12middleware_message"n\n\x16MiddlewareRegistration\x12\x17\n\x0fmiddleware_name\x18\x01 \x01(\t\x12#\n\x1b\x63ustom_macaroon_caveat_name\x18\x02 \x01(\t\x12\x16\n\x0eread_only_mode\x18\x03 \x01(\x08"\\\n\x11InterceptFeedback\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\x18\n\x10replace_response\x18\x02 \x01(\x08\x12\x1e\n\x16replacement_serialized\x18\x03 \x01(\x0c*}\n\x0b\x41\x64\x64ressType\x12\x17\n\x13WITNESS_PUBKEY_HASH\x10\x00\x12\x16\n\x12NESTED_PUBKEY_HASH\x10\x01\x12\x1e\n\x1aUNUSED_WITNESS_PUBKEY_HASH\x10\x02\x12\x1d\n\x19UNUSED_NESTED_PUBKEY_HASH\x10\x03*x\n\x0e\x43ommitmentType\x12\x1b\n\x17UNKNOWN_COMMITMENT_TYPE\x10\x00\x12\n\n\x06LEGACY\x10\x01\x12\x15\n\x11STATIC_REMOTE_KEY\x10\x02\x12\x0b\n\x07\x41NCHORS\x10\x03\x12\x19\n\x15SCRIPT_ENFORCED_LEASE\x10\x04*a\n\tInitiator\x12\x15\n\x11INITIATOR_UNKNOWN\x10\x00\x12\x13\n\x0fINITIATOR_LOCAL\x10\x01\x12\x14\n\x10INITIATOR_REMOTE\x10\x02\x12\x12\n\x0eINITIATOR_BOTH\x10\x03*`\n\x0eResolutionType\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\n\n\x06\x41NCHOR\x10\x01\x12\x11\n\rINCOMING_HTLC\x10\x02\x12\x11\n\rOUTGOING_HTLC\x10\x03\x12\n\n\x06\x43OMMIT\x10\x04*q\n\x11ResolutionOutcome\x12\x13\n\x0fOUTCOME_UNKNOWN\x10\x00\x12\x0b\n\x07\x43LAIMED\x10\x01\x12\r\n\tUNCLAIMED\x10\x02\x12\r\n\tABANDONED\x10\x03\x12\x0f\n\x0b\x46IRST_STAGE\x10\x04\x12\x0b\n\x07TIMEOUT\x10\x05*9\n\x0eNodeMetricType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x1a\n\x16\x42\x45TWEENNESS_CENTRALITY\x10\x01*;\n\x10InvoiceHTLCState\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x00\x12\x0b\n\x07SETTLED\x10\x01\x12\x0c\n\x08\x43\x41NCELED\x10\x02*\xd9\x01\n\x14PaymentFailureReason\x12\x17\n\x13\x46\x41ILURE_REASON_NONE\x10\x00\x12\x1a\n\x16\x46\x41ILURE_REASON_TIMEOUT\x10\x01\x12\x1b\n\x17\x46\x41ILURE_REASON_NO_ROUTE\x10\x02\x12\x18\n\x14\x46\x41ILURE_REASON_ERROR\x10\x03\x12,\n(FAILURE_REASON_INCORRECT_PAYMENT_DETAILS\x10\x04\x12\'\n#FAILURE_REASON_INSUFFICIENT_BALANCE\x10\x05*\xcf\x04\n\nFeatureBit\x12\x18\n\x14\x44\x41TALOSS_PROTECT_REQ\x10\x00\x12\x18\n\x14\x44\x41TALOSS_PROTECT_OPT\x10\x01\x12\x17\n\x13INITIAL_ROUING_SYNC\x10\x03\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_REQ\x10\x04\x12\x1f\n\x1bUPFRONT_SHUTDOWN_SCRIPT_OPT\x10\x05\x12\x16\n\x12GOSSIP_QUERIES_REQ\x10\x06\x12\x16\n\x12GOSSIP_QUERIES_OPT\x10\x07\x12\x11\n\rTLV_ONION_REQ\x10\x08\x12\x11\n\rTLV_ONION_OPT\x10\t\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_REQ\x10\n\x12\x1a\n\x16\x45XT_GOSSIP_QUERIES_OPT\x10\x0b\x12\x19\n\x15STATIC_REMOTE_KEY_REQ\x10\x0c\x12\x19\n\x15STATIC_REMOTE_KEY_OPT\x10\r\x12\x14\n\x10PAYMENT_ADDR_REQ\x10\x0e\x12\x14\n\x10PAYMENT_ADDR_OPT\x10\x0f\x12\x0b\n\x07MPP_REQ\x10\x10\x12\x0b\n\x07MPP_OPT\x10\x11\x12\x16\n\x12WUMBO_CHANNELS_REQ\x10\x12\x12\x16\n\x12WUMBO_CHANNELS_OPT\x10\x13\x12\x0f\n\x0b\x41NCHORS_REQ\x10\x14\x12\x0f\n\x0b\x41NCHORS_OPT\x10\x15\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_REQ\x10\x16\x12\x1d\n\x19\x41NCHORS_ZERO_FEE_HTLC_OPT\x10\x17\x12\x0b\n\x07\x41MP_REQ\x10\x1e\x12\x0b\n\x07\x41MP_OPT\x10\x1f*\xac\x01\n\rUpdateFailure\x12\x1a\n\x16UPDATE_FAILURE_UNKNOWN\x10\x00\x12\x1a\n\x16UPDATE_FAILURE_PENDING\x10\x01\x12\x1c\n\x18UPDATE_FAILURE_NOT_FOUND\x10\x02\x12\x1f\n\x1bUPDATE_FAILURE_INTERNAL_ERR\x10\x03\x12$\n UPDATE_FAILURE_INVALID_PARAMETER\x10\x04\x32\xc9%\n\tLightning\x12J\n\rWalletBalance\x12\x1b.lnrpc.WalletBalanceRequest\x1a\x1c.lnrpc.WalletBalanceResponse\x12M\n\x0e\x43hannelBalance\x12\x1c.lnrpc.ChannelBalanceRequest\x1a\x1d.lnrpc.ChannelBalanceResponse\x12K\n\x0fGetTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x19.lnrpc.TransactionDetails\x12\x44\n\x0b\x45stimateFee\x12\x19.lnrpc.EstimateFeeRequest\x1a\x1a.lnrpc.EstimateFeeResponse\x12>\n\tSendCoins\x12\x17.lnrpc.SendCoinsRequest\x1a\x18.lnrpc.SendCoinsResponse\x12\x44\n\x0bListUnspent\x12\x19.lnrpc.ListUnspentRequest\x1a\x1a.lnrpc.ListUnspentResponse\x12L\n\x15SubscribeTransactions\x12\x1d.lnrpc.GetTransactionsRequest\x1a\x12.lnrpc.Transaction0\x01\x12;\n\x08SendMany\x12\x16.lnrpc.SendManyRequest\x1a\x17.lnrpc.SendManyResponse\x12\x41\n\nNewAddress\x12\x18.lnrpc.NewAddressRequest\x1a\x19.lnrpc.NewAddressResponse\x12\x44\n\x0bSignMessage\x12\x19.lnrpc.SignMessageRequest\x1a\x1a.lnrpc.SignMessageResponse\x12J\n\rVerifyMessage\x12\x1b.lnrpc.VerifyMessageRequest\x1a\x1c.lnrpc.VerifyMessageResponse\x12\x44\n\x0b\x43onnectPeer\x12\x19.lnrpc.ConnectPeerRequest\x1a\x1a.lnrpc.ConnectPeerResponse\x12M\n\x0e\x44isconnectPeer\x12\x1c.lnrpc.DisconnectPeerRequest\x1a\x1d.lnrpc.DisconnectPeerResponse\x12>\n\tListPeers\x12\x17.lnrpc.ListPeersRequest\x1a\x18.lnrpc.ListPeersResponse\x12G\n\x13SubscribePeerEvents\x12\x1c.lnrpc.PeerEventSubscription\x1a\x10.lnrpc.PeerEvent0\x01\x12\x38\n\x07GetInfo\x12\x15.lnrpc.GetInfoRequest\x1a\x16.lnrpc.GetInfoResponse\x12P\n\x0fGetRecoveryInfo\x12\x1d.lnrpc.GetRecoveryInfoRequest\x1a\x1e.lnrpc.GetRecoveryInfoResponse\x12P\n\x0fPendingChannels\x12\x1d.lnrpc.PendingChannelsRequest\x1a\x1e.lnrpc.PendingChannelsResponse\x12G\n\x0cListChannels\x12\x1a.lnrpc.ListChannelsRequest\x1a\x1b.lnrpc.ListChannelsResponse\x12V\n\x16SubscribeChannelEvents\x12\x1f.lnrpc.ChannelEventSubscription\x1a\x19.lnrpc.ChannelEventUpdate0\x01\x12M\n\x0e\x43losedChannels\x12\x1c.lnrpc.ClosedChannelsRequest\x1a\x1d.lnrpc.ClosedChannelsResponse\x12\x41\n\x0fOpenChannelSync\x12\x19.lnrpc.OpenChannelRequest\x1a\x13.lnrpc.ChannelPoint\x12\x43\n\x0bOpenChannel\x12\x19.lnrpc.OpenChannelRequest\x1a\x17.lnrpc.OpenStatusUpdate0\x01\x12S\n\x10\x42\x61tchOpenChannel\x12\x1e.lnrpc.BatchOpenChannelRequest\x1a\x1f.lnrpc.BatchOpenChannelResponse\x12L\n\x10\x46undingStateStep\x12\x1b.lnrpc.FundingTransitionMsg\x1a\x1b.lnrpc.FundingStateStepResp\x12P\n\x0f\x43hannelAcceptor\x12\x1c.lnrpc.ChannelAcceptResponse\x1a\x1b.lnrpc.ChannelAcceptRequest(\x01\x30\x01\x12\x46\n\x0c\x43loseChannel\x12\x1a.lnrpc.CloseChannelRequest\x1a\x18.lnrpc.CloseStatusUpdate0\x01\x12M\n\x0e\x41\x62\x61ndonChannel\x12\x1c.lnrpc.AbandonChannelRequest\x1a\x1d.lnrpc.AbandonChannelResponse\x12?\n\x0bSendPayment\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse"\x03\x88\x02\x01(\x01\x30\x01\x12:\n\x0fSendPaymentSync\x12\x12.lnrpc.SendRequest\x1a\x13.lnrpc.SendResponse\x12\x46\n\x0bSendToRoute\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse"\x03\x88\x02\x01(\x01\x30\x01\x12\x41\n\x0fSendToRouteSync\x12\x19.lnrpc.SendToRouteRequest\x1a\x13.lnrpc.SendResponse\x12\x37\n\nAddInvoice\x12\x0e.lnrpc.Invoice\x1a\x19.lnrpc.AddInvoiceResponse\x12\x45\n\x0cListInvoices\x12\x19.lnrpc.ListInvoiceRequest\x1a\x1a.lnrpc.ListInvoiceResponse\x12\x33\n\rLookupInvoice\x12\x12.lnrpc.PaymentHash\x1a\x0e.lnrpc.Invoice\x12\x41\n\x11SubscribeInvoices\x12\x1a.lnrpc.InvoiceSubscription\x1a\x0e.lnrpc.Invoice0\x01\x12\x32\n\x0c\x44\x65\x63odePayReq\x12\x13.lnrpc.PayReqString\x1a\r.lnrpc.PayReq\x12G\n\x0cListPayments\x12\x1a.lnrpc.ListPaymentsRequest\x1a\x1b.lnrpc.ListPaymentsResponse\x12J\n\rDeletePayment\x12\x1b.lnrpc.DeletePaymentRequest\x1a\x1c.lnrpc.DeletePaymentResponse\x12V\n\x11\x44\x65leteAllPayments\x12\x1f.lnrpc.DeleteAllPaymentsRequest\x1a .lnrpc.DeleteAllPaymentsResponse\x12@\n\rDescribeGraph\x12\x1a.lnrpc.ChannelGraphRequest\x1a\x13.lnrpc.ChannelGraph\x12G\n\x0eGetNodeMetrics\x12\x19.lnrpc.NodeMetricsRequest\x1a\x1a.lnrpc.NodeMetricsResponse\x12\x39\n\x0bGetChanInfo\x12\x16.lnrpc.ChanInfoRequest\x1a\x12.lnrpc.ChannelEdge\x12\x36\n\x0bGetNodeInfo\x12\x16.lnrpc.NodeInfoRequest\x1a\x0f.lnrpc.NodeInfo\x12\x44\n\x0bQueryRoutes\x12\x19.lnrpc.QueryRoutesRequest\x1a\x1a.lnrpc.QueryRoutesResponse\x12?\n\x0eGetNetworkInfo\x12\x19.lnrpc.NetworkInfoRequest\x1a\x12.lnrpc.NetworkInfo\x12\x35\n\nStopDaemon\x12\x12.lnrpc.StopRequest\x1a\x13.lnrpc.StopResponse\x12W\n\x15SubscribeChannelGraph\x12 .lnrpc.GraphTopologySubscription\x1a\x1a.lnrpc.GraphTopologyUpdate0\x01\x12\x41\n\nDebugLevel\x12\x18.lnrpc.DebugLevelRequest\x1a\x19.lnrpc.DebugLevelResponse\x12>\n\tFeeReport\x12\x17.lnrpc.FeeReportRequest\x1a\x18.lnrpc.FeeReportResponse\x12N\n\x13UpdateChannelPolicy\x12\x1a.lnrpc.PolicyUpdateRequest\x1a\x1b.lnrpc.PolicyUpdateResponse\x12V\n\x11\x46orwardingHistory\x12\x1f.lnrpc.ForwardingHistoryRequest\x1a .lnrpc.ForwardingHistoryResponse\x12N\n\x13\x45xportChannelBackup\x12!.lnrpc.ExportChannelBackupRequest\x1a\x14.lnrpc.ChannelBackup\x12T\n\x17\x45xportAllChannelBackups\x12\x1e.lnrpc.ChanBackupExportRequest\x1a\x19.lnrpc.ChanBackupSnapshot\x12N\n\x10VerifyChanBackup\x12\x19.lnrpc.ChanBackupSnapshot\x1a\x1f.lnrpc.VerifyChanBackupResponse\x12V\n\x15RestoreChannelBackups\x12\x1f.lnrpc.RestoreChanBackupRequest\x1a\x1c.lnrpc.RestoreBackupResponse\x12X\n\x17SubscribeChannelBackups\x12 .lnrpc.ChannelBackupSubscription\x1a\x19.lnrpc.ChanBackupSnapshot0\x01\x12G\n\x0c\x42\x61keMacaroon\x12\x1a.lnrpc.BakeMacaroonRequest\x1a\x1b.lnrpc.BakeMacaroonResponse\x12P\n\x0fListMacaroonIDs\x12\x1d.lnrpc.ListMacaroonIDsRequest\x1a\x1e.lnrpc.ListMacaroonIDsResponse\x12S\n\x10\x44\x65leteMacaroonID\x12\x1e.lnrpc.DeleteMacaroonIDRequest\x1a\x1f.lnrpc.DeleteMacaroonIDResponse\x12P\n\x0fListPermissions\x12\x1d.lnrpc.ListPermissionsRequest\x1a\x1e.lnrpc.ListPermissionsResponse\x12S\n\x18\x43heckMacaroonPermissions\x12\x1a.lnrpc.CheckMacPermRequest\x1a\x1b.lnrpc.CheckMacPermResponse\x12V\n\x15RegisterRPCMiddleware\x12\x1c.lnrpc.RPCMiddlewareResponse\x1a\x1b.lnrpc.RPCMiddlewareRequest(\x01\x30\x01\x12V\n\x11SendCustomMessage\x12\x1f.lnrpc.SendCustomMessageRequest\x1a .lnrpc.SendCustomMessageResponse\x12X\n\x17SubscribeCustomMessages\x12%.lnrpc.SubscribeCustomMessagesRequest\x1a\x14.lnrpc.CustomMessage0\x01\x42\'Z%github.com/lightningnetwork/lnd/lnrpcb\x06proto3',
+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"\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"\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"\xa1\x04\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"\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"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*\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'
)
-_ADDRESSTYPE = _descriptor.EnumDescriptor(
- name="AddressType",
- full_name="lnrpc.AddressType",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="WITNESS_PUBKEY_HASH",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="NESTED_PUBKEY_HASH",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UNUSED_WITNESS_PUBKEY_HASH",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UNUSED_NESTED_PUBKEY_HASH",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=26639,
- serialized_end=26764,
-)
-_sym_db.RegisterEnumDescriptor(_ADDRESSTYPE)
-
+_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.EnumDescriptor(
- name="CommitmentType",
- full_name="lnrpc.CommitmentType",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="UNKNOWN_COMMITMENT_TYPE",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="LEGACY",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="STATIC_REMOTE_KEY",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ANCHORS",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="SCRIPT_ENFORCED_LEASE",
- index=4,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=26766,
- serialized_end=26886,
-)
-_sym_db.RegisterEnumDescriptor(_COMMITMENTTYPE)
-
+_COMMITMENTTYPE = DESCRIPTOR.enum_types_by_name["CommitmentType"]
CommitmentType = enum_type_wrapper.EnumTypeWrapper(_COMMITMENTTYPE)
-_INITIATOR = _descriptor.EnumDescriptor(
- name="Initiator",
- full_name="lnrpc.Initiator",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="INITIATOR_UNKNOWN",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INITIATOR_LOCAL",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INITIATOR_REMOTE",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INITIATOR_BOTH",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=26888,
- serialized_end=26985,
-)
-_sym_db.RegisterEnumDescriptor(_INITIATOR)
-
+_INITIATOR = DESCRIPTOR.enum_types_by_name["Initiator"]
Initiator = enum_type_wrapper.EnumTypeWrapper(_INITIATOR)
-_RESOLUTIONTYPE = _descriptor.EnumDescriptor(
- name="ResolutionType",
- full_name="lnrpc.ResolutionType",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="TYPE_UNKNOWN",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ANCHOR",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INCOMING_HTLC",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="OUTGOING_HTLC",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="COMMIT",
- index=4,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=26987,
- serialized_end=27083,
-)
-_sym_db.RegisterEnumDescriptor(_RESOLUTIONTYPE)
-
+_RESOLUTIONTYPE = DESCRIPTOR.enum_types_by_name["ResolutionType"]
ResolutionType = enum_type_wrapper.EnumTypeWrapper(_RESOLUTIONTYPE)
-_RESOLUTIONOUTCOME = _descriptor.EnumDescriptor(
- name="ResolutionOutcome",
- full_name="lnrpc.ResolutionOutcome",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="OUTCOME_UNKNOWN",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="CLAIMED",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UNCLAIMED",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ABANDONED",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FIRST_STAGE",
- index=4,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="TIMEOUT",
- index=5,
- number=5,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=27085,
- serialized_end=27198,
-)
-_sym_db.RegisterEnumDescriptor(_RESOLUTIONOUTCOME)
-
+_RESOLUTIONOUTCOME = DESCRIPTOR.enum_types_by_name["ResolutionOutcome"]
ResolutionOutcome = enum_type_wrapper.EnumTypeWrapper(_RESOLUTIONOUTCOME)
-_NODEMETRICTYPE = _descriptor.EnumDescriptor(
- name="NodeMetricType",
- full_name="lnrpc.NodeMetricType",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="UNKNOWN",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="BETWEENNESS_CENTRALITY",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=27200,
- serialized_end=27257,
-)
-_sym_db.RegisterEnumDescriptor(_NODEMETRICTYPE)
-
+_NODEMETRICTYPE = DESCRIPTOR.enum_types_by_name["NodeMetricType"]
NodeMetricType = enum_type_wrapper.EnumTypeWrapper(_NODEMETRICTYPE)
-_INVOICEHTLCSTATE = _descriptor.EnumDescriptor(
- name="InvoiceHTLCState",
- full_name="lnrpc.InvoiceHTLCState",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="ACCEPTED",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="SETTLED",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="CANCELED",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=27259,
- serialized_end=27318,
-)
-_sym_db.RegisterEnumDescriptor(_INVOICEHTLCSTATE)
-
+_INVOICEHTLCSTATE = DESCRIPTOR.enum_types_by_name["InvoiceHTLCState"]
InvoiceHTLCState = enum_type_wrapper.EnumTypeWrapper(_INVOICEHTLCSTATE)
-_PAYMENTFAILUREREASON = _descriptor.EnumDescriptor(
- name="PaymentFailureReason",
- full_name="lnrpc.PaymentFailureReason",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="FAILURE_REASON_NONE",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FAILURE_REASON_TIMEOUT",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FAILURE_REASON_NO_ROUTE",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FAILURE_REASON_ERROR",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FAILURE_REASON_INCORRECT_PAYMENT_DETAILS",
- index=4,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FAILURE_REASON_INSUFFICIENT_BALANCE",
- index=5,
- number=5,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=27321,
- serialized_end=27538,
-)
-_sym_db.RegisterEnumDescriptor(_PAYMENTFAILUREREASON)
-
+_PAYMENTFAILUREREASON = DESCRIPTOR.enum_types_by_name["PaymentFailureReason"]
PaymentFailureReason = enum_type_wrapper.EnumTypeWrapper(_PAYMENTFAILUREREASON)
-_FEATUREBIT = _descriptor.EnumDescriptor(
- name="FeatureBit",
- full_name="lnrpc.FeatureBit",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="DATALOSS_PROTECT_REQ",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="DATALOSS_PROTECT_OPT",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INITIAL_ROUING_SYNC",
- index=2,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UPFRONT_SHUTDOWN_SCRIPT_REQ",
- index=3,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UPFRONT_SHUTDOWN_SCRIPT_OPT",
- index=4,
- number=5,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="GOSSIP_QUERIES_REQ",
- index=5,
- number=6,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="GOSSIP_QUERIES_OPT",
- index=6,
- number=7,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="TLV_ONION_REQ",
- index=7,
- number=8,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="TLV_ONION_OPT",
- index=8,
- number=9,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="EXT_GOSSIP_QUERIES_REQ",
- index=9,
- number=10,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="EXT_GOSSIP_QUERIES_OPT",
- index=10,
- number=11,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="STATIC_REMOTE_KEY_REQ",
- index=11,
- number=12,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="STATIC_REMOTE_KEY_OPT",
- index=12,
- number=13,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="PAYMENT_ADDR_REQ",
- index=13,
- number=14,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="PAYMENT_ADDR_OPT",
- index=14,
- number=15,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="MPP_REQ",
- index=15,
- number=16,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="MPP_OPT",
- index=16,
- number=17,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="WUMBO_CHANNELS_REQ",
- index=17,
- number=18,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="WUMBO_CHANNELS_OPT",
- index=18,
- number=19,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ANCHORS_REQ",
- index=19,
- number=20,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ANCHORS_OPT",
- index=20,
- number=21,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ANCHORS_ZERO_FEE_HTLC_REQ",
- index=21,
- number=22,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ANCHORS_ZERO_FEE_HTLC_OPT",
- index=22,
- number=23,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="AMP_REQ",
- index=23,
- number=30,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="AMP_OPT",
- index=24,
- number=31,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=27541,
- serialized_end=28132,
-)
-_sym_db.RegisterEnumDescriptor(_FEATUREBIT)
-
+_FEATUREBIT = DESCRIPTOR.enum_types_by_name["FeatureBit"]
FeatureBit = enum_type_wrapper.EnumTypeWrapper(_FEATUREBIT)
-_UPDATEFAILURE = _descriptor.EnumDescriptor(
- name="UpdateFailure",
- full_name="lnrpc.UpdateFailure",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="UPDATE_FAILURE_UNKNOWN",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UPDATE_FAILURE_PENDING",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UPDATE_FAILURE_NOT_FOUND",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UPDATE_FAILURE_INTERNAL_ERR",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UPDATE_FAILURE_INVALID_PARAMETER",
- index=4,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=28135,
- serialized_end=28307,
-)
-_sym_db.RegisterEnumDescriptor(_UPDATEFAILURE)
-
+_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
@@ -769,20558 +118,270 @@ UPDATE_FAILURE_INTERNAL_ERR = 3
UPDATE_FAILURE_INVALID_PARAMETER = 4
-_CHANNELCLOSESUMMARY_CLOSURETYPE = _descriptor.EnumDescriptor(
- name="ClosureType",
- full_name="lnrpc.ChannelCloseSummary.ClosureType",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="COOPERATIVE_CLOSE",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="LOCAL_FORCE_CLOSE",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="REMOTE_FORCE_CLOSE",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="BREACH_CLOSE",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FUNDING_CANCELED",
- index=4,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ABANDONED",
- index=5,
- number=5,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=5664,
- serialized_end=5802,
-)
-_sym_db.RegisterEnumDescriptor(_CHANNELCLOSESUMMARY_CLOSURETYPE)
-
-_PEER_SYNCTYPE = _descriptor.EnumDescriptor(
- name="SyncType",
- full_name="lnrpc.Peer.SyncType",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="UNKNOWN_SYNC",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ACTIVE_SYNC",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="PASSIVE_SYNC",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="PINNED_SYNC",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=6624,
- serialized_end=6704,
-)
-_sym_db.RegisterEnumDescriptor(_PEER_SYNCTYPE)
-
-_PEEREVENT_EVENTTYPE = _descriptor.EnumDescriptor(
- name="EventType",
- full_name="lnrpc.PeerEvent.EventType",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="PEER_ONLINE",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="PEER_OFFLINE",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=6948,
- serialized_end=6994,
-)
-_sym_db.RegisterEnumDescriptor(_PEEREVENT_EVENTTYPE)
-
-_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE = _descriptor.EnumDescriptor(
- name="AnchorState",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.AnchorState",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="LIMBO",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="RECOVERED",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="LOST",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=12414,
- serialized_end=12463,
-)
-_sym_db.RegisterEnumDescriptor(_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE)
-
-_CHANNELEVENTUPDATE_UPDATETYPE = _descriptor.EnumDescriptor(
- name="UpdateType",
- full_name="lnrpc.ChannelEventUpdate.UpdateType",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="OPEN_CHANNEL",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="CLOSED_CHANNEL",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ACTIVE_CHANNEL",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INACTIVE_CHANNEL",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="PENDING_OPEN_CHANNEL",
- index=4,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FULLY_RESOLVED_CHANNEL",
- index=5,
- number=5,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=12868,
- serialized_end=13014,
-)
-_sym_db.RegisterEnumDescriptor(_CHANNELEVENTUPDATE_UPDATETYPE)
-
-_INVOICE_INVOICESTATE = _descriptor.EnumDescriptor(
- name="InvoiceState",
- full_name="lnrpc.Invoice.InvoiceState",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="OPEN",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="SETTLED",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="CANCELED",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="ACCEPTED",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=18957,
- serialized_end=19022,
-)
-_sym_db.RegisterEnumDescriptor(_INVOICE_INVOICESTATE)
-
-_PAYMENT_PAYMENTSTATUS = _descriptor.EnumDescriptor(
- name="PaymentStatus",
- full_name="lnrpc.Payment.PaymentStatus",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="UNKNOWN",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="IN_FLIGHT",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="SUCCEEDED",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FAILED",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=20350,
- serialized_end=20420,
-)
-_sym_db.RegisterEnumDescriptor(_PAYMENT_PAYMENTSTATUS)
-
-_HTLCATTEMPT_HTLCSTATUS = _descriptor.EnumDescriptor(
- name="HTLCStatus",
- full_name="lnrpc.HTLCAttempt.HTLCStatus",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="IN_FLIGHT",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="SUCCEEDED",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FAILED",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=20641,
- serialized_end=20695,
-)
-_sym_db.RegisterEnumDescriptor(_HTLCATTEMPT_HTLCSTATUS)
-
-_FAILURE_FAILURECODE = _descriptor.EnumDescriptor(
- name="FailureCode",
- full_name="lnrpc.Failure.FailureCode",
- filename=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- values=[
- _descriptor.EnumValueDescriptor(
- name="RESERVED",
- index=0,
- number=0,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INCORRECT_OR_UNKNOWN_PAYMENT_DETAILS",
- index=1,
- number=1,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INCORRECT_PAYMENT_AMOUNT",
- index=2,
- number=2,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FINAL_INCORRECT_CLTV_EXPIRY",
- index=3,
- number=3,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FINAL_INCORRECT_HTLC_AMOUNT",
- index=4,
- number=4,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FINAL_EXPIRY_TOO_SOON",
- index=5,
- number=5,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INVALID_REALM",
- index=6,
- number=6,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="EXPIRY_TOO_SOON",
- index=7,
- number=7,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INVALID_ONION_VERSION",
- index=8,
- number=8,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INVALID_ONION_HMAC",
- index=9,
- number=9,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INVALID_ONION_KEY",
- index=10,
- number=10,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="AMOUNT_BELOW_MINIMUM",
- index=11,
- number=11,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="FEE_INSUFFICIENT",
- index=12,
- number=12,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INCORRECT_CLTV_EXPIRY",
- index=13,
- number=13,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="CHANNEL_DISABLED",
- index=14,
- number=14,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="TEMPORARY_CHANNEL_FAILURE",
- index=15,
- number=15,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="REQUIRED_NODE_FEATURE_MISSING",
- index=16,
- number=16,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="REQUIRED_CHANNEL_FEATURE_MISSING",
- index=17,
- number=17,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UNKNOWN_NEXT_PEER",
- index=18,
- number=18,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="TEMPORARY_NODE_FAILURE",
- index=19,
- number=19,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="PERMANENT_NODE_FAILURE",
- index=20,
- number=20,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="PERMANENT_CHANNEL_FAILURE",
- index=21,
- number=21,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="EXPIRY_TOO_FAR",
- index=22,
- number=22,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="MPP_TIMEOUT",
- index=23,
- number=23,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INVALID_ONION_PAYLOAD",
- index=24,
- number=24,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="INTERNAL_FAILURE",
- index=25,
- number=997,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UNKNOWN_FAILURE",
- index=26,
- number=998,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.EnumValueDescriptor(
- name="UNREADABLE_FAILURE",
- index=27,
- number=999,
- serialized_options=None,
- type=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- containing_type=None,
- serialized_options=None,
- serialized_start=24591,
- serialized_end=25342,
-)
-_sym_db.RegisterEnumDescriptor(_FAILURE_FAILURECODE)
-
-
-_SUBSCRIBECUSTOMMESSAGESREQUEST = _descriptor.Descriptor(
- name="SubscribeCustomMessagesRequest",
- full_name="lnrpc.SubscribeCustomMessagesRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=26,
- serialized_end=58,
-)
-
-
-_CUSTOMMESSAGE = _descriptor.Descriptor(
- name="CustomMessage",
- full_name="lnrpc.CustomMessage",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="peer",
- full_name="lnrpc.CustomMessage.peer",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="type",
- full_name="lnrpc.CustomMessage.type",
- index=1,
- number=2,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="data",
- full_name="lnrpc.CustomMessage.data",
- index=2,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=60,
- serialized_end=117,
-)
-
-
-_SENDCUSTOMMESSAGEREQUEST = _descriptor.Descriptor(
- name="SendCustomMessageRequest",
- full_name="lnrpc.SendCustomMessageRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="peer",
- full_name="lnrpc.SendCustomMessageRequest.peer",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="type",
- full_name="lnrpc.SendCustomMessageRequest.type",
- index=1,
- number=2,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="data",
- full_name="lnrpc.SendCustomMessageRequest.data",
- index=2,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=119,
- serialized_end=187,
-)
-
-
-_SENDCUSTOMMESSAGERESPONSE = _descriptor.Descriptor(
- name="SendCustomMessageResponse",
- full_name="lnrpc.SendCustomMessageResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=189,
- serialized_end=216,
-)
-
-
-_UTXO = _descriptor.Descriptor(
- name="Utxo",
- full_name="lnrpc.Utxo",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="address_type",
- full_name="lnrpc.Utxo.address_type",
- index=0,
- number=1,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="address",
- full_name="lnrpc.Utxo.address",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amount_sat",
- full_name="lnrpc.Utxo.amount_sat",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pk_script",
- full_name="lnrpc.Utxo.pk_script",
- index=3,
- number=4,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="outpoint",
- full_name="lnrpc.Utxo.outpoint",
- index=4,
- number=5,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="confirmations",
- full_name="lnrpc.Utxo.confirmations",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=219,
- serialized_end=381,
-)
-
-
-_TRANSACTION = _descriptor.Descriptor(
- name="Transaction",
- full_name="lnrpc.Transaction",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="tx_hash",
- full_name="lnrpc.Transaction.tx_hash",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amount",
- full_name="lnrpc.Transaction.amount",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_confirmations",
- full_name="lnrpc.Transaction.num_confirmations",
- index=2,
- number=3,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="block_hash",
- full_name="lnrpc.Transaction.block_hash",
- index=3,
- number=4,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="block_height",
- full_name="lnrpc.Transaction.block_height",
- index=4,
- number=5,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="time_stamp",
- full_name="lnrpc.Transaction.time_stamp",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_fees",
- full_name="lnrpc.Transaction.total_fees",
- index=6,
- number=7,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="dest_addresses",
- full_name="lnrpc.Transaction.dest_addresses",
- index=7,
- number=8,
- type=9,
- cpp_type=9,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="raw_tx_hex",
- full_name="lnrpc.Transaction.raw_tx_hex",
- index=8,
- number=9,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="label",
- full_name="lnrpc.Transaction.label",
- index=9,
- number=10,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=384,
- serialized_end=598,
-)
-
-
-_GETTRANSACTIONSREQUEST = _descriptor.Descriptor(
- name="GetTransactionsRequest",
- full_name="lnrpc.GetTransactionsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="start_height",
- full_name="lnrpc.GetTransactionsRequest.start_height",
- index=0,
- number=1,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="end_height",
- full_name="lnrpc.GetTransactionsRequest.end_height",
- index=1,
- number=2,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="account",
- full_name="lnrpc.GetTransactionsRequest.account",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=600,
- serialized_end=683,
-)
-
-
-_TRANSACTIONDETAILS = _descriptor.Descriptor(
- name="TransactionDetails",
- full_name="lnrpc.TransactionDetails",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="transactions",
- full_name="lnrpc.TransactionDetails.transactions",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=685,
- serialized_end=747,
-)
-
-
-_FEELIMIT = _descriptor.Descriptor(
- name="FeeLimit",
- full_name="lnrpc.FeeLimit",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="fixed",
- full_name="lnrpc.FeeLimit.fixed",
- index=0,
- number=1,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fixed_msat",
- full_name="lnrpc.FeeLimit.fixed_msat",
- index=1,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="percent",
- full_name="lnrpc.FeeLimit.percent",
- index=2,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="limit",
- full_name="lnrpc.FeeLimit.limit",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=749,
- serialized_end=826,
-)
-
-
-_SENDREQUEST_DESTCUSTOMRECORDSENTRY = _descriptor.Descriptor(
- name="DestCustomRecordsEntry",
- full_name="lnrpc.SendRequest.DestCustomRecordsEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.SendRequest.DestCustomRecordsEntry.key",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.SendRequest.DestCustomRecordsEntry.value",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=1295,
- serialized_end=1351,
-)
-
-_SENDREQUEST = _descriptor.Descriptor(
- name="SendRequest",
- full_name="lnrpc.SendRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="dest",
- full_name="lnrpc.SendRequest.dest",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="dest_string",
- full_name="lnrpc.SendRequest.dest_string",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt",
- full_name="lnrpc.SendRequest.amt",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_msat",
- full_name="lnrpc.SendRequest.amt_msat",
- index=3,
- number=12,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_hash",
- full_name="lnrpc.SendRequest.payment_hash",
- index=4,
- number=4,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_hash_string",
- full_name="lnrpc.SendRequest.payment_hash_string",
- index=5,
- number=5,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_request",
- full_name="lnrpc.SendRequest.payment_request",
- index=6,
- number=6,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="final_cltv_delta",
- full_name="lnrpc.SendRequest.final_cltv_delta",
- index=7,
- number=7,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_limit",
- full_name="lnrpc.SendRequest.fee_limit",
- index=8,
- number=8,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="outgoing_chan_id",
- full_name="lnrpc.SendRequest.outgoing_chan_id",
- index=9,
- number=9,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_hop_pubkey",
- full_name="lnrpc.SendRequest.last_hop_pubkey",
- index=10,
- number=13,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="cltv_limit",
- full_name="lnrpc.SendRequest.cltv_limit",
- index=11,
- number=10,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="dest_custom_records",
- full_name="lnrpc.SendRequest.dest_custom_records",
- index=12,
- number=11,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="allow_self_payment",
- full_name="lnrpc.SendRequest.allow_self_payment",
- index=13,
- number=14,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="dest_features",
- full_name="lnrpc.SendRequest.dest_features",
- index=14,
- number=15,
- type=14,
- cpp_type=8,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_addr",
- full_name="lnrpc.SendRequest.payment_addr",
- index=15,
- number=16,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_SENDREQUEST_DESTCUSTOMRECORDSENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=829,
- serialized_end=1351,
-)
-
-
-_SENDRESPONSE = _descriptor.Descriptor(
- name="SendResponse",
- full_name="lnrpc.SendResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="payment_error",
- full_name="lnrpc.SendResponse.payment_error",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_preimage",
- full_name="lnrpc.SendResponse.payment_preimage",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_route",
- full_name="lnrpc.SendResponse.payment_route",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_hash",
- full_name="lnrpc.SendResponse.payment_hash",
- index=3,
- number=4,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=1353,
- serialized_end=1475,
-)
-
-
-_SENDTOROUTEREQUEST = _descriptor.Descriptor(
- name="SendToRouteRequest",
- full_name="lnrpc.SendToRouteRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="payment_hash",
- full_name="lnrpc.SendToRouteRequest.payment_hash",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_hash_string",
- full_name="lnrpc.SendToRouteRequest.payment_hash_string",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="route",
- full_name="lnrpc.SendToRouteRequest.route",
- index=2,
- number=4,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=1477,
- serialized_end=1587,
-)
-
-
-_CHANNELACCEPTREQUEST = _descriptor.Descriptor(
- name="ChannelAcceptRequest",
- full_name="lnrpc.ChannelAcceptRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="node_pubkey",
- full_name="lnrpc.ChannelAcceptRequest.node_pubkey",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chain_hash",
- full_name="lnrpc.ChannelAcceptRequest.chain_hash",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.ChannelAcceptRequest.pending_chan_id",
- index=2,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="funding_amt",
- full_name="lnrpc.ChannelAcceptRequest.funding_amt",
- index=3,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="push_amt",
- full_name="lnrpc.ChannelAcceptRequest.push_amt",
- index=4,
- number=5,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="dust_limit",
- full_name="lnrpc.ChannelAcceptRequest.dust_limit",
- index=5,
- number=6,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_value_in_flight",
- full_name="lnrpc.ChannelAcceptRequest.max_value_in_flight",
- index=6,
- number=7,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channel_reserve",
- full_name="lnrpc.ChannelAcceptRequest.channel_reserve",
- index=7,
- number=8,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_htlc",
- full_name="lnrpc.ChannelAcceptRequest.min_htlc",
- index=8,
- number=9,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_per_kw",
- full_name="lnrpc.ChannelAcceptRequest.fee_per_kw",
- index=9,
- number=10,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="csv_delay",
- full_name="lnrpc.ChannelAcceptRequest.csv_delay",
- index=10,
- number=11,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_accepted_htlcs",
- full_name="lnrpc.ChannelAcceptRequest.max_accepted_htlcs",
- index=11,
- number=12,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channel_flags",
- full_name="lnrpc.ChannelAcceptRequest.channel_flags",
- index=12,
- number=13,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commitment_type",
- full_name="lnrpc.ChannelAcceptRequest.commitment_type",
- index=13,
- number=14,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=1590,
- serialized_end=1947,
-)
-
-
-_CHANNELACCEPTRESPONSE = _descriptor.Descriptor(
- name="ChannelAcceptResponse",
- full_name="lnrpc.ChannelAcceptResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="accept",
- full_name="lnrpc.ChannelAcceptResponse.accept",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.ChannelAcceptResponse.pending_chan_id",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="error",
- full_name="lnrpc.ChannelAcceptResponse.error",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="upfront_shutdown",
- full_name="lnrpc.ChannelAcceptResponse.upfront_shutdown",
- index=3,
- number=4,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="csv_delay",
- full_name="lnrpc.ChannelAcceptResponse.csv_delay",
- index=4,
- number=5,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="reserve_sat",
- full_name="lnrpc.ChannelAcceptResponse.reserve_sat",
- index=5,
- number=6,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="in_flight_max_msat",
- full_name="lnrpc.ChannelAcceptResponse.in_flight_max_msat",
- index=6,
- number=7,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_htlc_count",
- full_name="lnrpc.ChannelAcceptResponse.max_htlc_count",
- index=7,
- number=8,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_htlc_in",
- full_name="lnrpc.ChannelAcceptResponse.min_htlc_in",
- index=8,
- number=9,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_accept_depth",
- full_name="lnrpc.ChannelAcceptResponse.min_accept_depth",
- index=9,
- number=10,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=1950,
- serialized_end=2194,
-)
-
-
-_CHANNELPOINT = _descriptor.Descriptor(
- name="ChannelPoint",
- full_name="lnrpc.ChannelPoint",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="funding_txid_bytes",
- full_name="lnrpc.ChannelPoint.funding_txid_bytes",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="funding_txid_str",
- full_name="lnrpc.ChannelPoint.funding_txid_str",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="output_index",
- full_name="lnrpc.ChannelPoint.output_index",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="funding_txid",
- full_name="lnrpc.ChannelPoint.funding_txid",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=2196,
- serialized_end=2306,
-)
-
-
-_OUTPOINT = _descriptor.Descriptor(
- name="OutPoint",
- full_name="lnrpc.OutPoint",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="txid_bytes",
- full_name="lnrpc.OutPoint.txid_bytes",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="txid_str",
- full_name="lnrpc.OutPoint.txid_str",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="output_index",
- full_name="lnrpc.OutPoint.output_index",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=2308,
- serialized_end=2378,
-)
-
-
-_LIGHTNINGADDRESS = _descriptor.Descriptor(
- name="LightningAddress",
- full_name="lnrpc.LightningAddress",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pubkey",
- full_name="lnrpc.LightningAddress.pubkey",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="host",
- full_name="lnrpc.LightningAddress.host",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=2380,
- serialized_end=2428,
-)
-
-
-_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY = _descriptor.Descriptor(
- name="AddrToAmountEntry",
- full_name="lnrpc.EstimateFeeRequest.AddrToAmountEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.EstimateFeeRequest.AddrToAmountEntry.key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.EstimateFeeRequest.AddrToAmountEntry.value",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=2587,
- serialized_end=2638,
-)
-
-_ESTIMATEFEEREQUEST = _descriptor.Descriptor(
- name="EstimateFeeRequest",
- full_name="lnrpc.EstimateFeeRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="AddrToAmount",
- full_name="lnrpc.EstimateFeeRequest.AddrToAmount",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="target_conf",
- full_name="lnrpc.EstimateFeeRequest.target_conf",
- index=1,
- number=2,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_confs",
- full_name="lnrpc.EstimateFeeRequest.min_confs",
- index=2,
- number=3,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="spend_unconfirmed",
- full_name="lnrpc.EstimateFeeRequest.spend_unconfirmed",
- index=3,
- number=4,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=2431,
- serialized_end=2638,
-)
-
-
-_ESTIMATEFEERESPONSE = _descriptor.Descriptor(
- name="EstimateFeeResponse",
- full_name="lnrpc.EstimateFeeResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="fee_sat",
- full_name="lnrpc.EstimateFeeResponse.fee_sat",
- index=0,
- number=1,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="feerate_sat_per_byte",
- full_name="lnrpc.EstimateFeeResponse.feerate_sat_per_byte",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_vbyte",
- full_name="lnrpc.EstimateFeeResponse.sat_per_vbyte",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=2640,
- serialized_end=2735,
-)
-
-
-_SENDMANYREQUEST_ADDRTOAMOUNTENTRY = _descriptor.Descriptor(
- name="AddrToAmountEntry",
- full_name="lnrpc.SendManyRequest.AddrToAmountEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.SendManyRequest.AddrToAmountEntry.key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.SendManyRequest.AddrToAmountEntry.value",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=2587,
- serialized_end=2638,
-)
-
-_SENDMANYREQUEST = _descriptor.Descriptor(
- name="SendManyRequest",
- full_name="lnrpc.SendManyRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="AddrToAmount",
- full_name="lnrpc.SendManyRequest.AddrToAmount",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="target_conf",
- full_name="lnrpc.SendManyRequest.target_conf",
- index=1,
- number=3,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_vbyte",
- full_name="lnrpc.SendManyRequest.sat_per_vbyte",
- index=2,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_byte",
- full_name="lnrpc.SendManyRequest.sat_per_byte",
- index=3,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="label",
- full_name="lnrpc.SendManyRequest.label",
- index=4,
- number=6,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_confs",
- full_name="lnrpc.SendManyRequest.min_confs",
- index=5,
- number=7,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="spend_unconfirmed",
- full_name="lnrpc.SendManyRequest.spend_unconfirmed",
- index=6,
- number=8,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_SENDMANYREQUEST_ADDRTOAMOUNTENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=2738,
- serialized_end=3003,
-)
-
-
-_SENDMANYRESPONSE = _descriptor.Descriptor(
- name="SendManyResponse",
- full_name="lnrpc.SendManyResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="txid",
- full_name="lnrpc.SendManyResponse.txid",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3005,
- serialized_end=3037,
-)
-
-
-_SENDCOINSREQUEST = _descriptor.Descriptor(
- name="SendCoinsRequest",
- full_name="lnrpc.SendCoinsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="addr",
- full_name="lnrpc.SendCoinsRequest.addr",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amount",
- full_name="lnrpc.SendCoinsRequest.amount",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="target_conf",
- full_name="lnrpc.SendCoinsRequest.target_conf",
- index=2,
- number=3,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_vbyte",
- full_name="lnrpc.SendCoinsRequest.sat_per_vbyte",
- index=3,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_byte",
- full_name="lnrpc.SendCoinsRequest.sat_per_byte",
- index=4,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="send_all",
- full_name="lnrpc.SendCoinsRequest.send_all",
- index=5,
- number=6,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="label",
- full_name="lnrpc.SendCoinsRequest.label",
- index=6,
- number=7,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_confs",
- full_name="lnrpc.SendCoinsRequest.min_confs",
- index=7,
- number=8,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="spend_unconfirmed",
- full_name="lnrpc.SendCoinsRequest.spend_unconfirmed",
- index=8,
- number=9,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3040,
- serialized_end=3237,
-)
-
-
-_SENDCOINSRESPONSE = _descriptor.Descriptor(
- name="SendCoinsResponse",
- full_name="lnrpc.SendCoinsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="txid",
- full_name="lnrpc.SendCoinsResponse.txid",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3239,
- serialized_end=3272,
-)
-
-
-_LISTUNSPENTREQUEST = _descriptor.Descriptor(
- name="ListUnspentRequest",
- full_name="lnrpc.ListUnspentRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="min_confs",
- full_name="lnrpc.ListUnspentRequest.min_confs",
- index=0,
- number=1,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_confs",
- full_name="lnrpc.ListUnspentRequest.max_confs",
- index=1,
- number=2,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="account",
- full_name="lnrpc.ListUnspentRequest.account",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3274,
- serialized_end=3349,
-)
-
-
-_LISTUNSPENTRESPONSE = _descriptor.Descriptor(
- name="ListUnspentResponse",
- full_name="lnrpc.ListUnspentResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="utxos",
- full_name="lnrpc.ListUnspentResponse.utxos",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3351,
- serialized_end=3400,
-)
-
-
-_NEWADDRESSREQUEST = _descriptor.Descriptor(
- name="NewAddressRequest",
- full_name="lnrpc.NewAddressRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="type",
- full_name="lnrpc.NewAddressRequest.type",
- index=0,
- number=1,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="account",
- full_name="lnrpc.NewAddressRequest.account",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3402,
- serialized_end=3472,
-)
-
-
-_NEWADDRESSRESPONSE = _descriptor.Descriptor(
- name="NewAddressResponse",
- full_name="lnrpc.NewAddressResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="address",
- full_name="lnrpc.NewAddressResponse.address",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3474,
- serialized_end=3511,
-)
-
-
-_SIGNMESSAGEREQUEST = _descriptor.Descriptor(
- name="SignMessageRequest",
- full_name="lnrpc.SignMessageRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="msg",
- full_name="lnrpc.SignMessageRequest.msg",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="single_hash",
- full_name="lnrpc.SignMessageRequest.single_hash",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3513,
- serialized_end=3567,
-)
-
-
-_SIGNMESSAGERESPONSE = _descriptor.Descriptor(
- name="SignMessageResponse",
- full_name="lnrpc.SignMessageResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="signature",
- full_name="lnrpc.SignMessageResponse.signature",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3569,
- serialized_end=3609,
-)
-
-
-_VERIFYMESSAGEREQUEST = _descriptor.Descriptor(
- name="VerifyMessageRequest",
- full_name="lnrpc.VerifyMessageRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="msg",
- full_name="lnrpc.VerifyMessageRequest.msg",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="signature",
- full_name="lnrpc.VerifyMessageRequest.signature",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3611,
- serialized_end=3665,
-)
-
-
-_VERIFYMESSAGERESPONSE = _descriptor.Descriptor(
- name="VerifyMessageResponse",
- full_name="lnrpc.VerifyMessageResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="valid",
- full_name="lnrpc.VerifyMessageResponse.valid",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pubkey",
- full_name="lnrpc.VerifyMessageResponse.pubkey",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3667,
- serialized_end=3721,
-)
-
-
-_CONNECTPEERREQUEST = _descriptor.Descriptor(
- name="ConnectPeerRequest",
- full_name="lnrpc.ConnectPeerRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="addr",
- full_name="lnrpc.ConnectPeerRequest.addr",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="perm",
- full_name="lnrpc.ConnectPeerRequest.perm",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="timeout",
- full_name="lnrpc.ConnectPeerRequest.timeout",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3723,
- serialized_end=3813,
-)
-
-
-_CONNECTPEERRESPONSE = _descriptor.Descriptor(
- name="ConnectPeerResponse",
- full_name="lnrpc.ConnectPeerResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3815,
- serialized_end=3836,
-)
-
-
-_DISCONNECTPEERREQUEST = _descriptor.Descriptor(
- name="DisconnectPeerRequest",
- full_name="lnrpc.DisconnectPeerRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pub_key",
- full_name="lnrpc.DisconnectPeerRequest.pub_key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3838,
- serialized_end=3878,
-)
-
-
-_DISCONNECTPEERRESPONSE = _descriptor.Descriptor(
- name="DisconnectPeerResponse",
- full_name="lnrpc.DisconnectPeerResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3880,
- serialized_end=3904,
-)
-
-
-_HTLC = _descriptor.Descriptor(
- name="HTLC",
- full_name="lnrpc.HTLC",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="incoming",
- full_name="lnrpc.HTLC.incoming",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amount",
- full_name="lnrpc.HTLC.amount",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="hash_lock",
- full_name="lnrpc.HTLC.hash_lock",
- index=2,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="expiration_height",
- full_name="lnrpc.HTLC.expiration_height",
- index=3,
- number=4,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="htlc_index",
- full_name="lnrpc.HTLC.htlc_index",
- index=4,
- number=5,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="forwarding_channel",
- full_name="lnrpc.HTLC.forwarding_channel",
- index=5,
- number=6,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="forwarding_htlc_index",
- full_name="lnrpc.HTLC.forwarding_htlc_index",
- index=6,
- number=7,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=3907,
- serialized_end=4072,
-)
-
-
-_CHANNELCONSTRAINTS = _descriptor.Descriptor(
- name="ChannelConstraints",
- full_name="lnrpc.ChannelConstraints",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="csv_delay",
- full_name="lnrpc.ChannelConstraints.csv_delay",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_reserve_sat",
- full_name="lnrpc.ChannelConstraints.chan_reserve_sat",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="dust_limit_sat",
- full_name="lnrpc.ChannelConstraints.dust_limit_sat",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_pending_amt_msat",
- full_name="lnrpc.ChannelConstraints.max_pending_amt_msat",
- index=3,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_htlc_msat",
- full_name="lnrpc.ChannelConstraints.min_htlc_msat",
- index=4,
- number=5,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_accepted_htlcs",
- full_name="lnrpc.ChannelConstraints.max_accepted_htlcs",
- index=5,
- number=6,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=4075,
- serialized_end=4245,
-)
-
-
-_CHANNEL = _descriptor.Descriptor(
- name="Channel",
- full_name="lnrpc.Channel",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="active",
- full_name="lnrpc.Channel.active",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_pubkey",
- full_name="lnrpc.Channel.remote_pubkey",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channel_point",
- full_name="lnrpc.Channel.channel_point",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.Channel.chan_id",
- index=3,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="capacity",
- full_name="lnrpc.Channel.capacity",
- index=4,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_balance",
- full_name="lnrpc.Channel.local_balance",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_balance",
- full_name="lnrpc.Channel.remote_balance",
- index=6,
- number=7,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commit_fee",
- full_name="lnrpc.Channel.commit_fee",
- index=7,
- number=8,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commit_weight",
- full_name="lnrpc.Channel.commit_weight",
- index=8,
- number=9,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_per_kw",
- full_name="lnrpc.Channel.fee_per_kw",
- index=9,
- number=10,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="unsettled_balance",
- full_name="lnrpc.Channel.unsettled_balance",
- index=10,
- number=11,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_satoshis_sent",
- full_name="lnrpc.Channel.total_satoshis_sent",
- index=11,
- number=12,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_satoshis_received",
- full_name="lnrpc.Channel.total_satoshis_received",
- index=12,
- number=13,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_updates",
- full_name="lnrpc.Channel.num_updates",
- index=13,
- number=14,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_htlcs",
- full_name="lnrpc.Channel.pending_htlcs",
- index=14,
- number=15,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="csv_delay",
- full_name="lnrpc.Channel.csv_delay",
- index=15,
- number=16,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="private",
- full_name="lnrpc.Channel.private",
- index=16,
- number=17,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="initiator",
- full_name="lnrpc.Channel.initiator",
- index=17,
- number=18,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_status_flags",
- full_name="lnrpc.Channel.chan_status_flags",
- index=18,
- number=19,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_chan_reserve_sat",
- full_name="lnrpc.Channel.local_chan_reserve_sat",
- index=19,
- number=20,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_chan_reserve_sat",
- full_name="lnrpc.Channel.remote_chan_reserve_sat",
- index=20,
- number=21,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="static_remote_key",
- full_name="lnrpc.Channel.static_remote_key",
- index=21,
- number=22,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commitment_type",
- full_name="lnrpc.Channel.commitment_type",
- index=22,
- number=26,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="lifetime",
- full_name="lnrpc.Channel.lifetime",
- index=23,
- number=23,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="uptime",
- full_name="lnrpc.Channel.uptime",
- index=24,
- number=24,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="close_address",
- full_name="lnrpc.Channel.close_address",
- index=25,
- number=25,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="push_amount_sat",
- full_name="lnrpc.Channel.push_amount_sat",
- index=26,
- number=27,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="thaw_height",
- full_name="lnrpc.Channel.thaw_height",
- index=27,
- number=28,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_constraints",
- full_name="lnrpc.Channel.local_constraints",
- index=28,
- number=29,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_constraints",
- full_name="lnrpc.Channel.remote_constraints",
- index=29,
- number=30,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=4248,
- serialized_end=5064,
-)
-
-
-_LISTCHANNELSREQUEST = _descriptor.Descriptor(
- name="ListChannelsRequest",
- full_name="lnrpc.ListChannelsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="active_only",
- full_name="lnrpc.ListChannelsRequest.active_only",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="inactive_only",
- full_name="lnrpc.ListChannelsRequest.inactive_only",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="public_only",
- full_name="lnrpc.ListChannelsRequest.public_only",
- index=2,
- number=3,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="private_only",
- full_name="lnrpc.ListChannelsRequest.private_only",
- index=3,
- number=4,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="peer",
- full_name="lnrpc.ListChannelsRequest.peer",
- index=4,
- number=5,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=5066,
- serialized_end=5188,
-)
-
-
-_LISTCHANNELSRESPONSE = _descriptor.Descriptor(
- name="ListChannelsResponse",
- full_name="lnrpc.ListChannelsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channels",
- full_name="lnrpc.ListChannelsResponse.channels",
- index=0,
- number=11,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=5190,
- serialized_end=5246,
-)
-
-
-_CHANNELCLOSESUMMARY = _descriptor.Descriptor(
- name="ChannelCloseSummary",
- full_name="lnrpc.ChannelCloseSummary",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel_point",
- full_name="lnrpc.ChannelCloseSummary.channel_point",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.ChannelCloseSummary.chan_id",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chain_hash",
- full_name="lnrpc.ChannelCloseSummary.chain_hash",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="closing_tx_hash",
- full_name="lnrpc.ChannelCloseSummary.closing_tx_hash",
- index=3,
- number=4,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_pubkey",
- full_name="lnrpc.ChannelCloseSummary.remote_pubkey",
- index=4,
- number=5,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="capacity",
- full_name="lnrpc.ChannelCloseSummary.capacity",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="close_height",
- full_name="lnrpc.ChannelCloseSummary.close_height",
- index=6,
- number=7,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="settled_balance",
- full_name="lnrpc.ChannelCloseSummary.settled_balance",
- index=7,
- number=8,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="time_locked_balance",
- full_name="lnrpc.ChannelCloseSummary.time_locked_balance",
- index=8,
- number=9,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="close_type",
- full_name="lnrpc.ChannelCloseSummary.close_type",
- index=9,
- number=10,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="open_initiator",
- full_name="lnrpc.ChannelCloseSummary.open_initiator",
- index=10,
- number=11,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="close_initiator",
- full_name="lnrpc.ChannelCloseSummary.close_initiator",
- index=11,
- number=12,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="resolutions",
- full_name="lnrpc.ChannelCloseSummary.resolutions",
- index=12,
- number=13,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[_CHANNELCLOSESUMMARY_CLOSURETYPE],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=5249,
- serialized_end=5802,
-)
-
-
-_RESOLUTION = _descriptor.Descriptor(
- name="Resolution",
- full_name="lnrpc.Resolution",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="resolution_type",
- full_name="lnrpc.Resolution.resolution_type",
- index=0,
- number=1,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="outcome",
- full_name="lnrpc.Resolution.outcome",
- index=1,
- number=2,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="outpoint",
- full_name="lnrpc.Resolution.outpoint",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amount_sat",
- full_name="lnrpc.Resolution.amount_sat",
- index=3,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sweep_txid",
- full_name="lnrpc.Resolution.sweep_txid",
- index=4,
- number=5,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=5805,
- serialized_end=5983,
-)
-
-
-_CLOSEDCHANNELSREQUEST = _descriptor.Descriptor(
- name="ClosedChannelsRequest",
- full_name="lnrpc.ClosedChannelsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="cooperative",
- full_name="lnrpc.ClosedChannelsRequest.cooperative",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_force",
- full_name="lnrpc.ClosedChannelsRequest.local_force",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_force",
- full_name="lnrpc.ClosedChannelsRequest.remote_force",
- index=2,
- number=3,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="breach",
- full_name="lnrpc.ClosedChannelsRequest.breach",
- index=3,
- number=4,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="funding_canceled",
- full_name="lnrpc.ClosedChannelsRequest.funding_canceled",
- index=4,
- number=5,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="abandoned",
- full_name="lnrpc.ClosedChannelsRequest.abandoned",
- index=5,
- number=6,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=5986,
- serialized_end=6134,
-)
-
-
-_CLOSEDCHANNELSRESPONSE = _descriptor.Descriptor(
- name="ClosedChannelsResponse",
- full_name="lnrpc.ClosedChannelsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channels",
- full_name="lnrpc.ClosedChannelsResponse.channels",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6136,
- serialized_end=6206,
-)
-
-
-_PEER_FEATURESENTRY = _descriptor.Descriptor(
- name="FeaturesEntry",
- full_name="lnrpc.Peer.FeaturesEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.Peer.FeaturesEntry.key",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.Peer.FeaturesEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6559,
- serialized_end=6622,
-)
-
-_PEER = _descriptor.Descriptor(
- name="Peer",
- full_name="lnrpc.Peer",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pub_key",
- full_name="lnrpc.Peer.pub_key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="address",
- full_name="lnrpc.Peer.address",
- index=1,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="bytes_sent",
- full_name="lnrpc.Peer.bytes_sent",
- index=2,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="bytes_recv",
- full_name="lnrpc.Peer.bytes_recv",
- index=3,
- number=5,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_sent",
- full_name="lnrpc.Peer.sat_sent",
- index=4,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_recv",
- full_name="lnrpc.Peer.sat_recv",
- index=5,
- number=7,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="inbound",
- full_name="lnrpc.Peer.inbound",
- index=6,
- number=8,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="ping_time",
- full_name="lnrpc.Peer.ping_time",
- index=7,
- number=9,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sync_type",
- full_name="lnrpc.Peer.sync_type",
- index=8,
- number=10,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="features",
- full_name="lnrpc.Peer.features",
- index=9,
- number=11,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="errors",
- full_name="lnrpc.Peer.errors",
- index=10,
- number=12,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="flap_count",
- full_name="lnrpc.Peer.flap_count",
- index=11,
- number=13,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_flap_ns",
- full_name="lnrpc.Peer.last_flap_ns",
- index=12,
- number=14,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_ping_payload",
- full_name="lnrpc.Peer.last_ping_payload",
- index=13,
- number=15,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_PEER_FEATURESENTRY],
- enum_types=[_PEER_SYNCTYPE],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6209,
- serialized_end=6704,
-)
-
-
-_TIMESTAMPEDERROR = _descriptor.Descriptor(
- name="TimestampedError",
- full_name="lnrpc.TimestampedError",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="timestamp",
- full_name="lnrpc.TimestampedError.timestamp",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="error",
- full_name="lnrpc.TimestampedError.error",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6706,
- serialized_end=6758,
-)
-
-
-_LISTPEERSREQUEST = _descriptor.Descriptor(
- name="ListPeersRequest",
- full_name="lnrpc.ListPeersRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="latest_error",
- full_name="lnrpc.ListPeersRequest.latest_error",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6760,
- serialized_end=6800,
-)
-
-
-_LISTPEERSRESPONSE = _descriptor.Descriptor(
- name="ListPeersResponse",
- full_name="lnrpc.ListPeersResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="peers",
- full_name="lnrpc.ListPeersResponse.peers",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6802,
- serialized_end=6849,
-)
-
-
-_PEEREVENTSUBSCRIPTION = _descriptor.Descriptor(
- name="PeerEventSubscription",
- full_name="lnrpc.PeerEventSubscription",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6851,
- serialized_end=6874,
-)
-
-
-_PEEREVENT = _descriptor.Descriptor(
- name="PeerEvent",
- full_name="lnrpc.PeerEvent",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pub_key",
- full_name="lnrpc.PeerEvent.pub_key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="type",
- full_name="lnrpc.PeerEvent.type",
- index=1,
- number=2,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[_PEEREVENT_EVENTTYPE],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6876,
- serialized_end=6994,
-)
-
-
-_GETINFOREQUEST = _descriptor.Descriptor(
- name="GetInfoRequest",
- full_name="lnrpc.GetInfoRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6996,
- serialized_end=7012,
-)
-
-
-_GETINFORESPONSE_FEATURESENTRY = _descriptor.Descriptor(
- name="FeaturesEntry",
- full_name="lnrpc.GetInfoResponse.FeaturesEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.GetInfoResponse.FeaturesEntry.key",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.GetInfoResponse.FeaturesEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6559,
- serialized_end=6622,
-)
-
-_GETINFORESPONSE = _descriptor.Descriptor(
- name="GetInfoResponse",
- full_name="lnrpc.GetInfoResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="version",
- full_name="lnrpc.GetInfoResponse.version",
- index=0,
- number=14,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commit_hash",
- full_name="lnrpc.GetInfoResponse.commit_hash",
- index=1,
- number=20,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="identity_pubkey",
- full_name="lnrpc.GetInfoResponse.identity_pubkey",
- index=2,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="alias",
- full_name="lnrpc.GetInfoResponse.alias",
- index=3,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="color",
- full_name="lnrpc.GetInfoResponse.color",
- index=4,
- number=17,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_pending_channels",
- full_name="lnrpc.GetInfoResponse.num_pending_channels",
- index=5,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_active_channels",
- full_name="lnrpc.GetInfoResponse.num_active_channels",
- index=6,
- number=4,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_inactive_channels",
- full_name="lnrpc.GetInfoResponse.num_inactive_channels",
- index=7,
- number=15,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_peers",
- full_name="lnrpc.GetInfoResponse.num_peers",
- index=8,
- number=5,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="block_height",
- full_name="lnrpc.GetInfoResponse.block_height",
- index=9,
- number=6,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="block_hash",
- full_name="lnrpc.GetInfoResponse.block_hash",
- index=10,
- number=8,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="best_header_timestamp",
- full_name="lnrpc.GetInfoResponse.best_header_timestamp",
- index=11,
- number=13,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="synced_to_chain",
- full_name="lnrpc.GetInfoResponse.synced_to_chain",
- index=12,
- number=9,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="synced_to_graph",
- full_name="lnrpc.GetInfoResponse.synced_to_graph",
- index=13,
- number=18,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="testnet",
- full_name="lnrpc.GetInfoResponse.testnet",
- index=14,
- number=10,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chains",
- full_name="lnrpc.GetInfoResponse.chains",
- index=15,
- number=16,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="uris",
- full_name="lnrpc.GetInfoResponse.uris",
- index=16,
- number=12,
- type=9,
- cpp_type=9,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="features",
- full_name="lnrpc.GetInfoResponse.features",
- index=17,
- number=19,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_GETINFORESPONSE_FEATURESENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=7015,
- serialized_end=7549,
-)
-
-
-_GETRECOVERYINFOREQUEST = _descriptor.Descriptor(
- name="GetRecoveryInfoRequest",
- full_name="lnrpc.GetRecoveryInfoRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=7551,
- serialized_end=7575,
-)
-
-
-_GETRECOVERYINFORESPONSE = _descriptor.Descriptor(
- name="GetRecoveryInfoResponse",
- full_name="lnrpc.GetRecoveryInfoResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="recovery_mode",
- full_name="lnrpc.GetRecoveryInfoResponse.recovery_mode",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="recovery_finished",
- full_name="lnrpc.GetRecoveryInfoResponse.recovery_finished",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="progress",
- full_name="lnrpc.GetRecoveryInfoResponse.progress",
- index=2,
- number=3,
- type=1,
- cpp_type=5,
- label=1,
- has_default_value=False,
- default_value=float(0),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=7577,
- serialized_end=7670,
-)
-
-
-_CHAIN = _descriptor.Descriptor(
- name="Chain",
- full_name="lnrpc.Chain",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chain",
- full_name="lnrpc.Chain.chain",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="network",
- full_name="lnrpc.Chain.network",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=7672,
- serialized_end=7711,
-)
-
-
-_CONFIRMATIONUPDATE = _descriptor.Descriptor(
- name="ConfirmationUpdate",
- full_name="lnrpc.ConfirmationUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="block_sha",
- full_name="lnrpc.ConfirmationUpdate.block_sha",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="block_height",
- full_name="lnrpc.ConfirmationUpdate.block_height",
- index=1,
- number=2,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_confs_left",
- full_name="lnrpc.ConfirmationUpdate.num_confs_left",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=7713,
- serialized_end=7798,
-)
-
-
-_CHANNELOPENUPDATE = _descriptor.Descriptor(
- name="ChannelOpenUpdate",
- full_name="lnrpc.ChannelOpenUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel_point",
- full_name="lnrpc.ChannelOpenUpdate.channel_point",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=7800,
- serialized_end=7863,
-)
-
-
-_CHANNELCLOSEUPDATE = _descriptor.Descriptor(
- name="ChannelCloseUpdate",
- full_name="lnrpc.ChannelCloseUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="closing_txid",
- full_name="lnrpc.ChannelCloseUpdate.closing_txid",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="success",
- full_name="lnrpc.ChannelCloseUpdate.success",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=7865,
- serialized_end=7924,
-)
-
-
-_CLOSECHANNELREQUEST = _descriptor.Descriptor(
- name="CloseChannelRequest",
- full_name="lnrpc.CloseChannelRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel_point",
- full_name="lnrpc.CloseChannelRequest.channel_point",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="force",
- full_name="lnrpc.CloseChannelRequest.force",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="target_conf",
- full_name="lnrpc.CloseChannelRequest.target_conf",
- index=2,
- number=3,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_byte",
- full_name="lnrpc.CloseChannelRequest.sat_per_byte",
- index=3,
- number=4,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="delivery_address",
- full_name="lnrpc.CloseChannelRequest.delivery_address",
- index=4,
- number=5,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_vbyte",
- full_name="lnrpc.CloseChannelRequest.sat_per_vbyte",
- index=5,
- number=6,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=7927,
- serialized_end=8103,
-)
-
-
-_CLOSESTATUSUPDATE = _descriptor.Descriptor(
- name="CloseStatusUpdate",
- full_name="lnrpc.CloseStatusUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="close_pending",
- full_name="lnrpc.CloseStatusUpdate.close_pending",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_close",
- full_name="lnrpc.CloseStatusUpdate.chan_close",
- index=1,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="update",
- full_name="lnrpc.CloseStatusUpdate.update",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=8105,
- serialized_end=8230,
-)
-
-
-_PENDINGUPDATE = _descriptor.Descriptor(
- name="PendingUpdate",
- full_name="lnrpc.PendingUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="txid",
- full_name="lnrpc.PendingUpdate.txid",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="output_index",
- full_name="lnrpc.PendingUpdate.output_index",
- index=1,
- number=2,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=8232,
- serialized_end=8283,
-)
-
-
-_READYFORPSBTFUNDING = _descriptor.Descriptor(
- name="ReadyForPsbtFunding",
- full_name="lnrpc.ReadyForPsbtFunding",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="funding_address",
- full_name="lnrpc.ReadyForPsbtFunding.funding_address",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="funding_amount",
- full_name="lnrpc.ReadyForPsbtFunding.funding_amount",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="psbt",
- full_name="lnrpc.ReadyForPsbtFunding.psbt",
- index=2,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=8285,
- serialized_end=8369,
-)
-
-
-_BATCHOPENCHANNELREQUEST = _descriptor.Descriptor(
- name="BatchOpenChannelRequest",
- full_name="lnrpc.BatchOpenChannelRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channels",
- full_name="lnrpc.BatchOpenChannelRequest.channels",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="target_conf",
- full_name="lnrpc.BatchOpenChannelRequest.target_conf",
- index=1,
- number=2,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_vbyte",
- full_name="lnrpc.BatchOpenChannelRequest.sat_per_vbyte",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_confs",
- full_name="lnrpc.BatchOpenChannelRequest.min_confs",
- index=3,
- number=4,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="spend_unconfirmed",
- full_name="lnrpc.BatchOpenChannelRequest.spend_unconfirmed",
- index=4,
- number=5,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="label",
- full_name="lnrpc.BatchOpenChannelRequest.label",
- index=5,
- number=6,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=8372,
- serialized_end=8545,
-)
-
-
-_BATCHOPENCHANNEL = _descriptor.Descriptor(
- name="BatchOpenChannel",
- full_name="lnrpc.BatchOpenChannel",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="node_pubkey",
- full_name="lnrpc.BatchOpenChannel.node_pubkey",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_funding_amount",
- full_name="lnrpc.BatchOpenChannel.local_funding_amount",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="push_sat",
- full_name="lnrpc.BatchOpenChannel.push_sat",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="private",
- full_name="lnrpc.BatchOpenChannel.private",
- index=3,
- number=4,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_htlc_msat",
- full_name="lnrpc.BatchOpenChannel.min_htlc_msat",
- index=4,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_csv_delay",
- full_name="lnrpc.BatchOpenChannel.remote_csv_delay",
- index=5,
- number=6,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="close_address",
- full_name="lnrpc.BatchOpenChannel.close_address",
- index=6,
- number=7,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.BatchOpenChannel.pending_chan_id",
- index=7,
- number=8,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commitment_type",
- full_name="lnrpc.BatchOpenChannel.commitment_type",
- index=8,
- number=9,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=8548,
- serialized_end=8797,
-)
-
-
-_BATCHOPENCHANNELRESPONSE = _descriptor.Descriptor(
- name="BatchOpenChannelResponse",
- full_name="lnrpc.BatchOpenChannelResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pending_channels",
- full_name="lnrpc.BatchOpenChannelResponse.pending_channels",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=8799,
- serialized_end=8873,
-)
-
-
-_OPENCHANNELREQUEST = _descriptor.Descriptor(
- name="OpenChannelRequest",
- full_name="lnrpc.OpenChannelRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="sat_per_vbyte",
- full_name="lnrpc.OpenChannelRequest.sat_per_vbyte",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="node_pubkey",
- full_name="lnrpc.OpenChannelRequest.node_pubkey",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="node_pubkey_string",
- full_name="lnrpc.OpenChannelRequest.node_pubkey_string",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_funding_amount",
- full_name="lnrpc.OpenChannelRequest.local_funding_amount",
- index=3,
- number=4,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="push_sat",
- full_name="lnrpc.OpenChannelRequest.push_sat",
- index=4,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="target_conf",
- full_name="lnrpc.OpenChannelRequest.target_conf",
- index=5,
- number=6,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="sat_per_byte",
- full_name="lnrpc.OpenChannelRequest.sat_per_byte",
- index=6,
- number=7,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="private",
- full_name="lnrpc.OpenChannelRequest.private",
- index=7,
- number=8,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_htlc_msat",
- full_name="lnrpc.OpenChannelRequest.min_htlc_msat",
- index=8,
- number=9,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_csv_delay",
- full_name="lnrpc.OpenChannelRequest.remote_csv_delay",
- index=9,
- number=10,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_confs",
- full_name="lnrpc.OpenChannelRequest.min_confs",
- index=10,
- number=11,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="spend_unconfirmed",
- full_name="lnrpc.OpenChannelRequest.spend_unconfirmed",
- index=11,
- number=12,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="close_address",
- full_name="lnrpc.OpenChannelRequest.close_address",
- index=12,
- number=13,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="funding_shim",
- full_name="lnrpc.OpenChannelRequest.funding_shim",
- index=13,
- number=14,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_max_value_in_flight_msat",
- full_name="lnrpc.OpenChannelRequest.remote_max_value_in_flight_msat",
- index=14,
- number=15,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_max_htlcs",
- full_name="lnrpc.OpenChannelRequest.remote_max_htlcs",
- index=15,
- number=16,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_local_csv",
- full_name="lnrpc.OpenChannelRequest.max_local_csv",
- index=16,
- number=17,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commitment_type",
- full_name="lnrpc.OpenChannelRequest.commitment_type",
- index=17,
- number=18,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=8876,
- serialized_end=9382,
-)
-
-
-_OPENSTATUSUPDATE = _descriptor.Descriptor(
- name="OpenStatusUpdate",
- full_name="lnrpc.OpenStatusUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_pending",
- full_name="lnrpc.OpenStatusUpdate.chan_pending",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_open",
- full_name="lnrpc.OpenStatusUpdate.chan_open",
- index=1,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="psbt_fund",
- full_name="lnrpc.OpenStatusUpdate.psbt_fund",
- index=2,
- number=5,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.OpenStatusUpdate.pending_chan_id",
- index=3,
- number=4,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="update",
- full_name="lnrpc.OpenStatusUpdate.update",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=9385,
- serialized_end=9580,
-)
-
-
-_KEYLOCATOR = _descriptor.Descriptor(
- name="KeyLocator",
- full_name="lnrpc.KeyLocator",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key_family",
- full_name="lnrpc.KeyLocator.key_family",
- index=0,
- number=1,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="key_index",
- full_name="lnrpc.KeyLocator.key_index",
- index=1,
- number=2,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=9582,
- serialized_end=9633,
-)
-
-
-_KEYDESCRIPTOR = _descriptor.Descriptor(
- name="KeyDescriptor",
- full_name="lnrpc.KeyDescriptor",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="raw_key_bytes",
- full_name="lnrpc.KeyDescriptor.raw_key_bytes",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="key_loc",
- full_name="lnrpc.KeyDescriptor.key_loc",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=9635,
- serialized_end=9709,
-)
-
-
-_CHANPOINTSHIM = _descriptor.Descriptor(
- name="ChanPointShim",
- full_name="lnrpc.ChanPointShim",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="amt",
- full_name="lnrpc.ChanPointShim.amt",
- index=0,
- number=1,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_point",
- full_name="lnrpc.ChanPointShim.chan_point",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_key",
- full_name="lnrpc.ChanPointShim.local_key",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_key",
- full_name="lnrpc.ChanPointShim.remote_key",
- index=3,
- number=4,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.ChanPointShim.pending_chan_id",
- index=4,
- number=5,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="thaw_height",
- full_name="lnrpc.ChanPointShim.thaw_height",
- index=5,
- number=6,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=9712,
- serialized_end=9888,
-)
-
-
-_PSBTSHIM = _descriptor.Descriptor(
- name="PsbtShim",
- full_name="lnrpc.PsbtShim",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.PsbtShim.pending_chan_id",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="base_psbt",
- full_name="lnrpc.PsbtShim.base_psbt",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="no_publish",
- full_name="lnrpc.PsbtShim.no_publish",
- index=2,
- number=3,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=9890,
- serialized_end=9964,
-)
-
-
-_FUNDINGSHIM = _descriptor.Descriptor(
- name="FundingShim",
- full_name="lnrpc.FundingShim",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_point_shim",
- full_name="lnrpc.FundingShim.chan_point_shim",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="psbt_shim",
- full_name="lnrpc.FundingShim.psbt_shim",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="shim",
- full_name="lnrpc.FundingShim.shim",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=9966,
- serialized_end=10074,
-)
-
-
-_FUNDINGSHIMCANCEL = _descriptor.Descriptor(
- name="FundingShimCancel",
- full_name="lnrpc.FundingShimCancel",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.FundingShimCancel.pending_chan_id",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=10076,
- serialized_end=10120,
-)
-
-
-_FUNDINGPSBTVERIFY = _descriptor.Descriptor(
- name="FundingPsbtVerify",
- full_name="lnrpc.FundingPsbtVerify",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="funded_psbt",
- full_name="lnrpc.FundingPsbtVerify.funded_psbt",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.FundingPsbtVerify.pending_chan_id",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="skip_finalize",
- full_name="lnrpc.FundingPsbtVerify.skip_finalize",
- index=2,
- number=3,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=10122,
- serialized_end=10210,
-)
-
-
-_FUNDINGPSBTFINALIZE = _descriptor.Descriptor(
- name="FundingPsbtFinalize",
- full_name="lnrpc.FundingPsbtFinalize",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="signed_psbt",
- full_name="lnrpc.FundingPsbtFinalize.signed_psbt",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_chan_id",
- full_name="lnrpc.FundingPsbtFinalize.pending_chan_id",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="final_raw_tx",
- full_name="lnrpc.FundingPsbtFinalize.final_raw_tx",
- index=2,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=10212,
- serialized_end=10301,
-)
-
-
-_FUNDINGTRANSITIONMSG = _descriptor.Descriptor(
- name="FundingTransitionMsg",
- full_name="lnrpc.FundingTransitionMsg",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="shim_register",
- full_name="lnrpc.FundingTransitionMsg.shim_register",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="shim_cancel",
- full_name="lnrpc.FundingTransitionMsg.shim_cancel",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="psbt_verify",
- full_name="lnrpc.FundingTransitionMsg.psbt_verify",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="psbt_finalize",
- full_name="lnrpc.FundingTransitionMsg.psbt_finalize",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="trigger",
- full_name="lnrpc.FundingTransitionMsg.trigger",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=10304,
- serialized_end=10533,
-)
-
-
-_FUNDINGSTATESTEPRESP = _descriptor.Descriptor(
- name="FundingStateStepResp",
- full_name="lnrpc.FundingStateStepResp",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=10535,
- serialized_end=10557,
-)
-
-
-_PENDINGHTLC = _descriptor.Descriptor(
- name="PendingHTLC",
- full_name="lnrpc.PendingHTLC",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="incoming",
- full_name="lnrpc.PendingHTLC.incoming",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amount",
- full_name="lnrpc.PendingHTLC.amount",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="outpoint",
- full_name="lnrpc.PendingHTLC.outpoint",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="maturity_height",
- full_name="lnrpc.PendingHTLC.maturity_height",
- index=3,
- number=4,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="blocks_til_maturity",
- full_name="lnrpc.PendingHTLC.blocks_til_maturity",
- index=4,
- number=5,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="stage",
- full_name="lnrpc.PendingHTLC.stage",
- index=5,
- number=6,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=10560,
- serialized_end=10694,
-)
-
-
-_PENDINGCHANNELSREQUEST = _descriptor.Descriptor(
- name="PendingChannelsRequest",
- full_name="lnrpc.PendingChannelsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=10696,
- serialized_end=10720,
-)
-
-
-_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL = _descriptor.Descriptor(
- name="PendingChannel",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="remote_node_pub",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.remote_node_pub",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channel_point",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.channel_point",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="capacity",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.capacity",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_balance",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.local_balance",
- index=3,
- number=4,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_balance",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.remote_balance",
- index=4,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_chan_reserve_sat",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.local_chan_reserve_sat",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_chan_reserve_sat",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.remote_chan_reserve_sat",
- index=6,
- number=7,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="initiator",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.initiator",
- index=7,
- number=8,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commitment_type",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.commitment_type",
- index=8,
- number=9,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_forwarding_packages",
- full_name="lnrpc.PendingChannelsResponse.PendingChannel.num_forwarding_packages",
- index=9,
- number=10,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=11121,
- serialized_end=11433,
-)
-
-_PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL = _descriptor.Descriptor(
- name="PendingOpenChannel",
- full_name="lnrpc.PendingChannelsResponse.PendingOpenChannel",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel",
- full_name="lnrpc.PendingChannelsResponse.PendingOpenChannel.channel",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="confirmation_height",
- full_name="lnrpc.PendingChannelsResponse.PendingOpenChannel.confirmation_height",
- index=1,
- number=2,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commit_fee",
- full_name="lnrpc.PendingChannelsResponse.PendingOpenChannel.commit_fee",
- index=2,
- number=4,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commit_weight",
- full_name="lnrpc.PendingChannelsResponse.PendingOpenChannel.commit_weight",
- index=3,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_per_kw",
- full_name="lnrpc.PendingChannelsResponse.PendingOpenChannel.fee_per_kw",
- index=4,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=11436,
- serialized_end=11612,
-)
-
-_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL = _descriptor.Descriptor(
- name="WaitingCloseChannel",
- full_name="lnrpc.PendingChannelsResponse.WaitingCloseChannel",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel",
- full_name="lnrpc.PendingChannelsResponse.WaitingCloseChannel.channel",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="limbo_balance",
- full_name="lnrpc.PendingChannelsResponse.WaitingCloseChannel.limbo_balance",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="commitments",
- full_name="lnrpc.PendingChannelsResponse.WaitingCloseChannel.commitments",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=11615,
- serialized_end=11788,
-)
-
-_PENDINGCHANNELSRESPONSE_COMMITMENTS = _descriptor.Descriptor(
- name="Commitments",
- full_name="lnrpc.PendingChannelsResponse.Commitments",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="local_txid",
- full_name="lnrpc.PendingChannelsResponse.Commitments.local_txid",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_txid",
- full_name="lnrpc.PendingChannelsResponse.Commitments.remote_txid",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_pending_txid",
- full_name="lnrpc.PendingChannelsResponse.Commitments.remote_pending_txid",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_commit_fee_sat",
- full_name="lnrpc.PendingChannelsResponse.Commitments.local_commit_fee_sat",
- index=3,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_commit_fee_sat",
- full_name="lnrpc.PendingChannelsResponse.Commitments.remote_commit_fee_sat",
- index=4,
- number=5,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_pending_commit_fee_sat",
- full_name="lnrpc.PendingChannelsResponse.Commitments.remote_pending_commit_fee_sat",
- index=5,
- number=6,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=11791,
- serialized_end=11974,
-)
-
-_PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL = _descriptor.Descriptor(
- name="ClosedChannel",
- full_name="lnrpc.PendingChannelsResponse.ClosedChannel",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel",
- full_name="lnrpc.PendingChannelsResponse.ClosedChannel.channel",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="closing_txid",
- full_name="lnrpc.PendingChannelsResponse.ClosedChannel.closing_txid",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=11976,
- serialized_end=12077,
-)
-
-_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL = _descriptor.Descriptor(
- name="ForceClosedChannel",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.channel",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="closing_txid",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.closing_txid",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="limbo_balance",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.limbo_balance",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="maturity_height",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.maturity_height",
- index=3,
- number=4,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="blocks_til_maturity",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.blocks_til_maturity",
- index=4,
- number=5,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="recovered_balance",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.recovered_balance",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_htlcs",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.pending_htlcs",
- index=6,
- number=8,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="anchor",
- full_name="lnrpc.PendingChannelsResponse.ForceClosedChannel.anchor",
- index=7,
- number=9,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=12080,
- serialized_end=12463,
-)
-
-_PENDINGCHANNELSRESPONSE = _descriptor.Descriptor(
- name="PendingChannelsResponse",
- full_name="lnrpc.PendingChannelsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="total_limbo_balance",
- full_name="lnrpc.PendingChannelsResponse.total_limbo_balance",
- index=0,
- number=1,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_open_channels",
- full_name="lnrpc.PendingChannelsResponse.pending_open_channels",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_closing_channels",
- full_name="lnrpc.PendingChannelsResponse.pending_closing_channels",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_force_closing_channels",
- full_name="lnrpc.PendingChannelsResponse.pending_force_closing_channels",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="waiting_close_channels",
- full_name="lnrpc.PendingChannelsResponse.waiting_close_channels",
- index=4,
- number=5,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[
- _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL,
- _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL,
- _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL,
- _PENDINGCHANNELSRESPONSE_COMMITMENTS,
- _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL,
- _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL,
- ],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=10723,
- serialized_end=12463,
-)
-
-
-_CHANNELEVENTSUBSCRIPTION = _descriptor.Descriptor(
- name="ChannelEventSubscription",
- full_name="lnrpc.ChannelEventSubscription",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=12465,
- serialized_end=12491,
-)
-
-
-_CHANNELEVENTUPDATE = _descriptor.Descriptor(
- name="ChannelEventUpdate",
- full_name="lnrpc.ChannelEventUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="open_channel",
- full_name="lnrpc.ChannelEventUpdate.open_channel",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="closed_channel",
- full_name="lnrpc.ChannelEventUpdate.closed_channel",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="active_channel",
- full_name="lnrpc.ChannelEventUpdate.active_channel",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="inactive_channel",
- full_name="lnrpc.ChannelEventUpdate.inactive_channel",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_open_channel",
- full_name="lnrpc.ChannelEventUpdate.pending_open_channel",
- index=4,
- number=6,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fully_resolved_channel",
- full_name="lnrpc.ChannelEventUpdate.fully_resolved_channel",
- index=5,
- number=7,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="type",
- full_name="lnrpc.ChannelEventUpdate.type",
- index=6,
- number=5,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[_CHANNELEVENTUPDATE_UPDATETYPE],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="channel",
- full_name="lnrpc.ChannelEventUpdate.channel",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=12494,
- serialized_end=13025,
-)
-
-
-_WALLETACCOUNTBALANCE = _descriptor.Descriptor(
- name="WalletAccountBalance",
- full_name="lnrpc.WalletAccountBalance",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="confirmed_balance",
- full_name="lnrpc.WalletAccountBalance.confirmed_balance",
- index=0,
- number=1,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="unconfirmed_balance",
- full_name="lnrpc.WalletAccountBalance.unconfirmed_balance",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=13027,
- serialized_end=13105,
-)
-
-
-_WALLETBALANCEREQUEST = _descriptor.Descriptor(
- name="WalletBalanceRequest",
- full_name="lnrpc.WalletBalanceRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=13107,
- serialized_end=13129,
-)
-
-
-_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY = _descriptor.Descriptor(
- name="AccountBalanceEntry",
- full_name="lnrpc.WalletBalanceResponse.AccountBalanceEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.WalletBalanceResponse.AccountBalanceEntry.key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.WalletBalanceResponse.AccountBalanceEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=13311,
- serialized_end=13393,
-)
-
-_WALLETBALANCERESPONSE = _descriptor.Descriptor(
- name="WalletBalanceResponse",
- full_name="lnrpc.WalletBalanceResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="total_balance",
- full_name="lnrpc.WalletBalanceResponse.total_balance",
- index=0,
- number=1,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="confirmed_balance",
- full_name="lnrpc.WalletBalanceResponse.confirmed_balance",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="unconfirmed_balance",
- full_name="lnrpc.WalletBalanceResponse.unconfirmed_balance",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="account_balance",
- full_name="lnrpc.WalletBalanceResponse.account_balance",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=13132,
- serialized_end=13393,
-)
-
-
-_AMOUNT = _descriptor.Descriptor(
- name="Amount",
- full_name="lnrpc.Amount",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="sat",
- full_name="lnrpc.Amount.sat",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="msat",
- full_name="lnrpc.Amount.msat",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=13395,
- serialized_end=13430,
-)
-
-
-_CHANNELBALANCEREQUEST = _descriptor.Descriptor(
- name="ChannelBalanceRequest",
- full_name="lnrpc.ChannelBalanceRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=13432,
- serialized_end=13455,
-)
-
-
-_CHANNELBALANCERESPONSE = _descriptor.Descriptor(
- name="ChannelBalanceResponse",
- full_name="lnrpc.ChannelBalanceResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="balance",
- full_name="lnrpc.ChannelBalanceResponse.balance",
- index=0,
- number=1,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_open_balance",
- full_name="lnrpc.ChannelBalanceResponse.pending_open_balance",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="local_balance",
- full_name="lnrpc.ChannelBalanceResponse.local_balance",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="remote_balance",
- full_name="lnrpc.ChannelBalanceResponse.remote_balance",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="unsettled_local_balance",
- full_name="lnrpc.ChannelBalanceResponse.unsettled_local_balance",
- index=4,
- number=5,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="unsettled_remote_balance",
- full_name="lnrpc.ChannelBalanceResponse.unsettled_remote_balance",
- index=5,
- number=6,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_open_local_balance",
- full_name="lnrpc.ChannelBalanceResponse.pending_open_local_balance",
- index=6,
- number=7,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_open_remote_balance",
- full_name="lnrpc.ChannelBalanceResponse.pending_open_remote_balance",
- index=7,
- number=8,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=13458,
- serialized_end=13814,
-)
-
-
-_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY = _descriptor.Descriptor(
- name="DestCustomRecordsEntry",
- full_name="lnrpc.QueryRoutesRequest.DestCustomRecordsEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.QueryRoutesRequest.DestCustomRecordsEntry.key",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.QueryRoutesRequest.DestCustomRecordsEntry.value",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=1295,
- serialized_end=1351,
-)
-
-_QUERYROUTESREQUEST = _descriptor.Descriptor(
- name="QueryRoutesRequest",
- full_name="lnrpc.QueryRoutesRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pub_key",
- full_name="lnrpc.QueryRoutesRequest.pub_key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt",
- full_name="lnrpc.QueryRoutesRequest.amt",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_msat",
- full_name="lnrpc.QueryRoutesRequest.amt_msat",
- index=2,
- number=12,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="final_cltv_delta",
- full_name="lnrpc.QueryRoutesRequest.final_cltv_delta",
- index=3,
- number=4,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_limit",
- full_name="lnrpc.QueryRoutesRequest.fee_limit",
- index=4,
- number=5,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="ignored_nodes",
- full_name="lnrpc.QueryRoutesRequest.ignored_nodes",
- index=5,
- number=6,
- type=12,
- cpp_type=9,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="ignored_edges",
- full_name="lnrpc.QueryRoutesRequest.ignored_edges",
- index=6,
- number=7,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="source_pub_key",
- full_name="lnrpc.QueryRoutesRequest.source_pub_key",
- index=7,
- number=8,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="use_mission_control",
- full_name="lnrpc.QueryRoutesRequest.use_mission_control",
- index=8,
- number=9,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="ignored_pairs",
- full_name="lnrpc.QueryRoutesRequest.ignored_pairs",
- index=9,
- number=10,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="cltv_limit",
- full_name="lnrpc.QueryRoutesRequest.cltv_limit",
- index=10,
- number=11,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="dest_custom_records",
- full_name="lnrpc.QueryRoutesRequest.dest_custom_records",
- index=11,
- number=13,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="outgoing_chan_id",
- full_name="lnrpc.QueryRoutesRequest.outgoing_chan_id",
- index=12,
- number=14,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_hop_pubkey",
- full_name="lnrpc.QueryRoutesRequest.last_hop_pubkey",
- index=13,
- number=15,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="route_hints",
- full_name="lnrpc.QueryRoutesRequest.route_hints",
- index=14,
- number=16,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="dest_features",
- full_name="lnrpc.QueryRoutesRequest.dest_features",
- index=15,
- number=17,
- type=14,
- cpp_type=8,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=13817,
- serialized_end=14409,
-)
-
-
-_NODEPAIR = _descriptor.Descriptor(
- name="NodePair",
- full_name="lnrpc.NodePair",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="from",
- full_name="lnrpc.NodePair.from",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="to",
- full_name="lnrpc.NodePair.to",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=14411,
- serialized_end=14447,
-)
-
-
-_EDGELOCATOR = _descriptor.Descriptor(
- name="EdgeLocator",
- full_name="lnrpc.EdgeLocator",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel_id",
- full_name="lnrpc.EdgeLocator.channel_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="direction_reverse",
- full_name="lnrpc.EdgeLocator.direction_reverse",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=14449,
- serialized_end=14513,
-)
-
-
-_QUERYROUTESRESPONSE = _descriptor.Descriptor(
- name="QueryRoutesResponse",
- full_name="lnrpc.QueryRoutesResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="routes",
- full_name="lnrpc.QueryRoutesResponse.routes",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="success_prob",
- full_name="lnrpc.QueryRoutesResponse.success_prob",
- index=1,
- number=2,
- type=1,
- cpp_type=5,
- label=1,
- has_default_value=False,
- default_value=float(0),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=14515,
- serialized_end=14588,
-)
-
-
-_HOP_CUSTOMRECORDSENTRY = _descriptor.Descriptor(
- name="CustomRecordsEntry",
- full_name="lnrpc.Hop.CustomRecordsEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.Hop.CustomRecordsEntry.key",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.Hop.CustomRecordsEntry.value",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=14923,
- serialized_end=14975,
-)
-
-_HOP = _descriptor.Descriptor(
- name="Hop",
- full_name="lnrpc.Hop",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.Hop.chan_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_capacity",
- full_name="lnrpc.Hop.chan_capacity",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_to_forward",
- full_name="lnrpc.Hop.amt_to_forward",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee",
- full_name="lnrpc.Hop.fee",
- index=3,
- number=4,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="expiry",
- full_name="lnrpc.Hop.expiry",
- index=4,
- number=5,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_to_forward_msat",
- full_name="lnrpc.Hop.amt_to_forward_msat",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_msat",
- full_name="lnrpc.Hop.fee_msat",
- index=6,
- number=7,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pub_key",
- full_name="lnrpc.Hop.pub_key",
- index=7,
- number=8,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="tlv_payload",
- full_name="lnrpc.Hop.tlv_payload",
- index=8,
- number=9,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="mpp_record",
- full_name="lnrpc.Hop.mpp_record",
- index=9,
- number=10,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amp_record",
- full_name="lnrpc.Hop.amp_record",
- index=10,
- number=12,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="custom_records",
- full_name="lnrpc.Hop.custom_records",
- index=11,
- number=11,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_HOP_CUSTOMRECORDSENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=14591,
- serialized_end=14975,
-)
-
-
-_MPPRECORD = _descriptor.Descriptor(
- name="MPPRecord",
- full_name="lnrpc.MPPRecord",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="payment_addr",
- full_name="lnrpc.MPPRecord.payment_addr",
- index=0,
- number=11,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_amt_msat",
- full_name="lnrpc.MPPRecord.total_amt_msat",
- index=1,
- number=10,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=14977,
- serialized_end=15034,
-)
-
-
-_AMPRECORD = _descriptor.Descriptor(
- name="AMPRecord",
- full_name="lnrpc.AMPRecord",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="root_share",
- full_name="lnrpc.AMPRecord.root_share",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="set_id",
- full_name="lnrpc.AMPRecord.set_id",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="child_index",
- full_name="lnrpc.AMPRecord.child_index",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=15036,
- serialized_end=15104,
-)
-
-
-_ROUTE = _descriptor.Descriptor(
- name="Route",
- full_name="lnrpc.Route",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="total_time_lock",
- full_name="lnrpc.Route.total_time_lock",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_fees",
- full_name="lnrpc.Route.total_fees",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_amt",
- full_name="lnrpc.Route.total_amt",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="hops",
- full_name="lnrpc.Route.hops",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_fees_msat",
- full_name="lnrpc.Route.total_fees_msat",
- index=4,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_amt_msat",
- full_name="lnrpc.Route.total_amt_msat",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=15107,
- serialized_end=15261,
-)
-
-
-_NODEINFOREQUEST = _descriptor.Descriptor(
- name="NodeInfoRequest",
- full_name="lnrpc.NodeInfoRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pub_key",
- full_name="lnrpc.NodeInfoRequest.pub_key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="include_channels",
- full_name="lnrpc.NodeInfoRequest.include_channels",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=15263,
- serialized_end=15323,
-)
-
-
-_NODEINFO = _descriptor.Descriptor(
- name="NodeInfo",
- full_name="lnrpc.NodeInfo",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="node",
- full_name="lnrpc.NodeInfo.node",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_channels",
- full_name="lnrpc.NodeInfo.num_channels",
- index=1,
- number=2,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_capacity",
- full_name="lnrpc.NodeInfo.total_capacity",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channels",
- full_name="lnrpc.NodeInfo.channels",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=15326,
- serialized_end=15456,
-)
-
-
-_LIGHTNINGNODE_FEATURESENTRY = _descriptor.Descriptor(
- name="FeaturesEntry",
- full_name="lnrpc.LightningNode.FeaturesEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.LightningNode.FeaturesEntry.key",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.LightningNode.FeaturesEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6559,
- serialized_end=6622,
-)
-
-_LIGHTNINGNODE = _descriptor.Descriptor(
- name="LightningNode",
- full_name="lnrpc.LightningNode",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="last_update",
- full_name="lnrpc.LightningNode.last_update",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pub_key",
- full_name="lnrpc.LightningNode.pub_key",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="alias",
- full_name="lnrpc.LightningNode.alias",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="addresses",
- full_name="lnrpc.LightningNode.addresses",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="color",
- full_name="lnrpc.LightningNode.color",
- index=4,
- number=5,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="features",
- full_name="lnrpc.LightningNode.features",
- index=5,
- number=6,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_LIGHTNINGNODE_FEATURESENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=15459,
- serialized_end=15700,
-)
-
-
-_NODEADDRESS = _descriptor.Descriptor(
- name="NodeAddress",
- full_name="lnrpc.NodeAddress",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="network",
- full_name="lnrpc.NodeAddress.network",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="addr",
- full_name="lnrpc.NodeAddress.addr",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=15702,
- serialized_end=15746,
-)
-
-
-_ROUTINGPOLICY = _descriptor.Descriptor(
- name="RoutingPolicy",
- full_name="lnrpc.RoutingPolicy",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="time_lock_delta",
- full_name="lnrpc.RoutingPolicy.time_lock_delta",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_htlc",
- full_name="lnrpc.RoutingPolicy.min_htlc",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_base_msat",
- full_name="lnrpc.RoutingPolicy.fee_base_msat",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_rate_milli_msat",
- full_name="lnrpc.RoutingPolicy.fee_rate_milli_msat",
- index=3,
- number=4,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="disabled",
- full_name="lnrpc.RoutingPolicy.disabled",
- index=4,
- number=5,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_htlc_msat",
- full_name="lnrpc.RoutingPolicy.max_htlc_msat",
- index=5,
- number=6,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_update",
- full_name="lnrpc.RoutingPolicy.last_update",
- index=6,
- number=7,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=15749,
- serialized_end=15921,
-)
-
-
-_CHANNELEDGE = _descriptor.Descriptor(
- name="ChannelEdge",
- full_name="lnrpc.ChannelEdge",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel_id",
- full_name="lnrpc.ChannelEdge.channel_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_point",
- full_name="lnrpc.ChannelEdge.chan_point",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_update",
- full_name="lnrpc.ChannelEdge.last_update",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="node1_pub",
- full_name="lnrpc.ChannelEdge.node1_pub",
- index=3,
- number=4,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="node2_pub",
- full_name="lnrpc.ChannelEdge.node2_pub",
- index=4,
- number=5,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="capacity",
- full_name="lnrpc.ChannelEdge.capacity",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="node1_policy",
- full_name="lnrpc.ChannelEdge.node1_policy",
- index=6,
- number=7,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="node2_policy",
- full_name="lnrpc.ChannelEdge.node2_policy",
- index=7,
- number=8,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=15924,
- serialized_end=16150,
-)
-
-
-_CHANNELGRAPHREQUEST = _descriptor.Descriptor(
- name="ChannelGraphRequest",
- full_name="lnrpc.ChannelGraphRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="include_unannounced",
- full_name="lnrpc.ChannelGraphRequest.include_unannounced",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16152,
- serialized_end=16202,
-)
-
-
-_CHANNELGRAPH = _descriptor.Descriptor(
- name="ChannelGraph",
- full_name="lnrpc.ChannelGraph",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="nodes",
- full_name="lnrpc.ChannelGraph.nodes",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="edges",
- full_name="lnrpc.ChannelGraph.edges",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16204,
- serialized_end=16290,
-)
-
-
-_NODEMETRICSREQUEST = _descriptor.Descriptor(
- name="NodeMetricsRequest",
- full_name="lnrpc.NodeMetricsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="types",
- full_name="lnrpc.NodeMetricsRequest.types",
- index=0,
- number=1,
- type=14,
- cpp_type=8,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16292,
- serialized_end=16350,
-)
-
-
-_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY = _descriptor.Descriptor(
- name="BetweennessCentralityEntry",
- full_name="lnrpc.NodeMetricsResponse.BetweennessCentralityEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.NodeMetricsResponse.BetweennessCentralityEntry.key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.NodeMetricsResponse.BetweennessCentralityEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16463,
- serialized_end=16543,
-)
-
-_NODEMETRICSRESPONSE = _descriptor.Descriptor(
- name="NodeMetricsResponse",
- full_name="lnrpc.NodeMetricsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="betweenness_centrality",
- full_name="lnrpc.NodeMetricsResponse.betweenness_centrality",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16353,
- serialized_end=16543,
-)
-
-
-_FLOATMETRIC = _descriptor.Descriptor(
- name="FloatMetric",
- full_name="lnrpc.FloatMetric",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.FloatMetric.value",
- index=0,
- number=1,
- type=1,
- cpp_type=5,
- label=1,
- has_default_value=False,
- default_value=float(0),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="normalized_value",
- full_name="lnrpc.FloatMetric.normalized_value",
- index=1,
- number=2,
- type=1,
- cpp_type=5,
- label=1,
- has_default_value=False,
- default_value=float(0),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16545,
- serialized_end=16599,
-)
-
-
-_CHANINFOREQUEST = _descriptor.Descriptor(
- name="ChanInfoRequest",
- full_name="lnrpc.ChanInfoRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.ChanInfoRequest.chan_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16601,
- serialized_end=16639,
-)
-
-
-_NETWORKINFOREQUEST = _descriptor.Descriptor(
- name="NetworkInfoRequest",
- full_name="lnrpc.NetworkInfoRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16641,
- serialized_end=16661,
-)
-
-
-_NETWORKINFO = _descriptor.Descriptor(
- name="NetworkInfo",
- full_name="lnrpc.NetworkInfo",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="graph_diameter",
- full_name="lnrpc.NetworkInfo.graph_diameter",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="avg_out_degree",
- full_name="lnrpc.NetworkInfo.avg_out_degree",
- index=1,
- number=2,
- type=1,
- cpp_type=5,
- label=1,
- has_default_value=False,
- default_value=float(0),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_out_degree",
- full_name="lnrpc.NetworkInfo.max_out_degree",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_nodes",
- full_name="lnrpc.NetworkInfo.num_nodes",
- index=3,
- number=4,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_channels",
- full_name="lnrpc.NetworkInfo.num_channels",
- index=4,
- number=5,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="total_network_capacity",
- full_name="lnrpc.NetworkInfo.total_network_capacity",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="avg_channel_size",
- full_name="lnrpc.NetworkInfo.avg_channel_size",
- index=6,
- number=7,
- type=1,
- cpp_type=5,
- label=1,
- has_default_value=False,
- default_value=float(0),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_channel_size",
- full_name="lnrpc.NetworkInfo.min_channel_size",
- index=7,
- number=8,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_channel_size",
- full_name="lnrpc.NetworkInfo.max_channel_size",
- index=8,
- number=9,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="median_channel_size_sat",
- full_name="lnrpc.NetworkInfo.median_channel_size_sat",
- index=9,
- number=10,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_zombie_chans",
- full_name="lnrpc.NetworkInfo.num_zombie_chans",
- index=10,
- number=11,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16664,
- serialized_end=16959,
-)
-
-
-_STOPREQUEST = _descriptor.Descriptor(
- name="StopRequest",
- full_name="lnrpc.StopRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16961,
- serialized_end=16974,
-)
-
-
-_STOPRESPONSE = _descriptor.Descriptor(
- name="StopResponse",
- full_name="lnrpc.StopResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16976,
- serialized_end=16990,
-)
-
-
-_GRAPHTOPOLOGYSUBSCRIPTION = _descriptor.Descriptor(
- name="GraphTopologySubscription",
- full_name="lnrpc.GraphTopologySubscription",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=16992,
- serialized_end=17019,
-)
-
-
-_GRAPHTOPOLOGYUPDATE = _descriptor.Descriptor(
- name="GraphTopologyUpdate",
- full_name="lnrpc.GraphTopologyUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="node_updates",
- full_name="lnrpc.GraphTopologyUpdate.node_updates",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channel_updates",
- full_name="lnrpc.GraphTopologyUpdate.channel_updates",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="closed_chans",
- full_name="lnrpc.GraphTopologyUpdate.closed_chans",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=17022,
- serialized_end=17185,
-)
-
-
-_NODEUPDATE_FEATURESENTRY = _descriptor.Descriptor(
- name="FeaturesEntry",
- full_name="lnrpc.NodeUpdate.FeaturesEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.NodeUpdate.FeaturesEntry.key",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.NodeUpdate.FeaturesEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6559,
- serialized_end=6622,
-)
-
-_NODEUPDATE = _descriptor.Descriptor(
- name="NodeUpdate",
- full_name="lnrpc.NodeUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="addresses",
- full_name="lnrpc.NodeUpdate.addresses",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="identity_key",
- full_name="lnrpc.NodeUpdate.identity_key",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="global_features",
- full_name="lnrpc.NodeUpdate.global_features",
- index=2,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="alias",
- full_name="lnrpc.NodeUpdate.alias",
- index=3,
- number=4,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="color",
- full_name="lnrpc.NodeUpdate.color",
- index=4,
- number=5,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="node_addresses",
- full_name="lnrpc.NodeUpdate.node_addresses",
- index=5,
- number=7,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="features",
- full_name="lnrpc.NodeUpdate.features",
- index=6,
- number=6,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_NODEUPDATE_FEATURESENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=17188,
- serialized_end=17464,
-)
-
-
-_CHANNELEDGEUPDATE = _descriptor.Descriptor(
- name="ChannelEdgeUpdate",
- full_name="lnrpc.ChannelEdgeUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.ChannelEdgeUpdate.chan_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_point",
- full_name="lnrpc.ChannelEdgeUpdate.chan_point",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="capacity",
- full_name="lnrpc.ChannelEdgeUpdate.capacity",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="routing_policy",
- full_name="lnrpc.ChannelEdgeUpdate.routing_policy",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="advertising_node",
- full_name="lnrpc.ChannelEdgeUpdate.advertising_node",
- index=4,
- number=5,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="connecting_node",
- full_name="lnrpc.ChannelEdgeUpdate.connecting_node",
- index=5,
- number=6,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=17467,
- serialized_end=17663,
-)
-
-
-_CLOSEDCHANNELUPDATE = _descriptor.Descriptor(
- name="ClosedChannelUpdate",
- full_name="lnrpc.ClosedChannelUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.ClosedChannelUpdate.chan_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="capacity",
- full_name="lnrpc.ClosedChannelUpdate.capacity",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="closed_height",
- full_name="lnrpc.ClosedChannelUpdate.closed_height",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_point",
- full_name="lnrpc.ClosedChannelUpdate.chan_point",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=17665,
- serialized_end=17789,
-)
-
-
-_HOPHINT = _descriptor.Descriptor(
- name="HopHint",
- full_name="lnrpc.HopHint",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="node_id",
- full_name="lnrpc.HopHint.node_id",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.HopHint.chan_id",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_base_msat",
- full_name="lnrpc.HopHint.fee_base_msat",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_proportional_millionths",
- full_name="lnrpc.HopHint.fee_proportional_millionths",
- index=3,
- number=4,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="cltv_expiry_delta",
- full_name="lnrpc.HopHint.cltv_expiry_delta",
- index=4,
- number=5,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=17792,
- serialized_end=17926,
-)
-
-
-_SETID = _descriptor.Descriptor(
- name="SetID",
- full_name="lnrpc.SetID",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="set_id",
- full_name="lnrpc.SetID.set_id",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=17928,
- serialized_end=17951,
-)
-
-
-_ROUTEHINT = _descriptor.Descriptor(
- name="RouteHint",
- full_name="lnrpc.RouteHint",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="hop_hints",
- full_name="lnrpc.RouteHint.hop_hints",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=17953,
- serialized_end=17999,
-)
-
-
-_AMPINVOICESTATE = _descriptor.Descriptor(
- name="AMPInvoiceState",
- full_name="lnrpc.AMPInvoiceState",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="state",
- full_name="lnrpc.AMPInvoiceState.state",
- index=0,
- number=1,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="settle_index",
- full_name="lnrpc.AMPInvoiceState.settle_index",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="settle_time",
- full_name="lnrpc.AMPInvoiceState.settle_time",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_paid_msat",
- full_name="lnrpc.AMPInvoiceState.amt_paid_msat",
- index=3,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=18001,
- serialized_end=18124,
-)
-
-
-_INVOICE_FEATURESENTRY = _descriptor.Descriptor(
- name="FeaturesEntry",
- full_name="lnrpc.Invoice.FeaturesEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.Invoice.FeaturesEntry.key",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.Invoice.FeaturesEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6559,
- serialized_end=6622,
-)
-
-_INVOICE_AMPINVOICESTATEENTRY = _descriptor.Descriptor(
- name="AmpInvoiceStateEntry",
- full_name="lnrpc.Invoice.AmpInvoiceStateEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.Invoice.AmpInvoiceStateEntry.key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.Invoice.AmpInvoiceStateEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=18877,
- serialized_end=18955,
-)
-
-_INVOICE = _descriptor.Descriptor(
- name="Invoice",
- full_name="lnrpc.Invoice",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="memo",
- full_name="lnrpc.Invoice.memo",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="r_preimage",
- full_name="lnrpc.Invoice.r_preimage",
- index=1,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="r_hash",
- full_name="lnrpc.Invoice.r_hash",
- index=2,
- number=4,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.Invoice.value",
- index=3,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value_msat",
- full_name="lnrpc.Invoice.value_msat",
- index=4,
- number=23,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="settled",
- full_name="lnrpc.Invoice.settled",
- index=5,
- number=6,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="creation_date",
- full_name="lnrpc.Invoice.creation_date",
- index=6,
- number=7,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="settle_date",
- full_name="lnrpc.Invoice.settle_date",
- index=7,
- number=8,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_request",
- full_name="lnrpc.Invoice.payment_request",
- index=8,
- number=9,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="description_hash",
- full_name="lnrpc.Invoice.description_hash",
- index=9,
- number=10,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="expiry",
- full_name="lnrpc.Invoice.expiry",
- index=10,
- number=11,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fallback_addr",
- full_name="lnrpc.Invoice.fallback_addr",
- index=11,
- number=12,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="cltv_expiry",
- full_name="lnrpc.Invoice.cltv_expiry",
- index=12,
- number=13,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="route_hints",
- full_name="lnrpc.Invoice.route_hints",
- index=13,
- number=14,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="private",
- full_name="lnrpc.Invoice.private",
- index=14,
- number=15,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="add_index",
- full_name="lnrpc.Invoice.add_index",
- index=15,
- number=16,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="settle_index",
- full_name="lnrpc.Invoice.settle_index",
- index=16,
- number=17,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_paid",
- full_name="lnrpc.Invoice.amt_paid",
- index=17,
- number=18,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_paid_sat",
- full_name="lnrpc.Invoice.amt_paid_sat",
- index=18,
- number=19,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_paid_msat",
- full_name="lnrpc.Invoice.amt_paid_msat",
- index=19,
- number=20,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="state",
- full_name="lnrpc.Invoice.state",
- index=20,
- number=21,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="htlcs",
- full_name="lnrpc.Invoice.htlcs",
- index=21,
- number=22,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="features",
- full_name="lnrpc.Invoice.features",
- index=22,
- number=24,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="is_keysend",
- full_name="lnrpc.Invoice.is_keysend",
- index=23,
- number=25,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_addr",
- full_name="lnrpc.Invoice.payment_addr",
- index=24,
- number=26,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="is_amp",
- full_name="lnrpc.Invoice.is_amp",
- index=25,
- number=27,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amp_invoice_state",
- full_name="lnrpc.Invoice.amp_invoice_state",
- index=26,
- number=28,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_INVOICE_FEATURESENTRY, _INVOICE_AMPINVOICESTATEENTRY],
- enum_types=[_INVOICE_INVOICESTATE],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=18127,
- serialized_end=19028,
-)
-
-
-_INVOICEHTLC_CUSTOMRECORDSENTRY = _descriptor.Descriptor(
- name="CustomRecordsEntry",
- full_name="lnrpc.InvoiceHTLC.CustomRecordsEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.InvoiceHTLC.CustomRecordsEntry.key",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.InvoiceHTLC.CustomRecordsEntry.value",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=14923,
- serialized_end=14975,
-)
-
-_INVOICEHTLC = _descriptor.Descriptor(
- name="InvoiceHTLC",
- full_name="lnrpc.InvoiceHTLC",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.InvoiceHTLC.chan_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="htlc_index",
- full_name="lnrpc.InvoiceHTLC.htlc_index",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_msat",
- full_name="lnrpc.InvoiceHTLC.amt_msat",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="accept_height",
- full_name="lnrpc.InvoiceHTLC.accept_height",
- index=3,
- number=4,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="accept_time",
- full_name="lnrpc.InvoiceHTLC.accept_time",
- index=4,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="resolve_time",
- full_name="lnrpc.InvoiceHTLC.resolve_time",
- index=5,
- number=6,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="expiry_height",
- full_name="lnrpc.InvoiceHTLC.expiry_height",
- index=6,
- number=7,
- type=5,
- cpp_type=1,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="state",
- full_name="lnrpc.InvoiceHTLC.state",
- index=7,
- number=8,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="custom_records",
- full_name="lnrpc.InvoiceHTLC.custom_records",
- index=8,
- number=9,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="mpp_total_amt_msat",
- full_name="lnrpc.InvoiceHTLC.mpp_total_amt_msat",
- index=9,
- number=10,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amp",
- full_name="lnrpc.InvoiceHTLC.amp",
- index=10,
- number=11,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_INVOICEHTLC_CUSTOMRECORDSENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=19031,
- serialized_end=19402,
-)
-
-
-_AMP = _descriptor.Descriptor(
- name="AMP",
- full_name="lnrpc.AMP",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="root_share",
- full_name="lnrpc.AMP.root_share",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="set_id",
- full_name="lnrpc.AMP.set_id",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="child_index",
- full_name="lnrpc.AMP.child_index",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="hash",
- full_name="lnrpc.AMP.hash",
- index=3,
- number=4,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="preimage",
- full_name="lnrpc.AMP.preimage",
- index=4,
- number=5,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=19404,
- serialized_end=19498,
-)
-
-
-_ADDINVOICERESPONSE = _descriptor.Descriptor(
- name="AddInvoiceResponse",
- full_name="lnrpc.AddInvoiceResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="r_hash",
- full_name="lnrpc.AddInvoiceResponse.r_hash",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_request",
- full_name="lnrpc.AddInvoiceResponse.payment_request",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="add_index",
- full_name="lnrpc.AddInvoiceResponse.add_index",
- index=2,
- number=16,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_addr",
- full_name="lnrpc.AddInvoiceResponse.payment_addr",
- index=3,
- number=17,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=19500,
- serialized_end=19602,
-)
-
-
-_PAYMENTHASH = _descriptor.Descriptor(
- name="PaymentHash",
- full_name="lnrpc.PaymentHash",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="r_hash_str",
- full_name="lnrpc.PaymentHash.r_hash_str",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="r_hash",
- full_name="lnrpc.PaymentHash.r_hash",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=19604,
- serialized_end=19657,
-)
-
-
-_LISTINVOICEREQUEST = _descriptor.Descriptor(
- name="ListInvoiceRequest",
- full_name="lnrpc.ListInvoiceRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pending_only",
- full_name="lnrpc.ListInvoiceRequest.pending_only",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="index_offset",
- full_name="lnrpc.ListInvoiceRequest.index_offset",
- index=1,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_max_invoices",
- full_name="lnrpc.ListInvoiceRequest.num_max_invoices",
- index=2,
- number=5,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="reversed",
- full_name="lnrpc.ListInvoiceRequest.reversed",
- index=3,
- number=6,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=19659,
- serialized_end=19767,
-)
-
-
-_LISTINVOICERESPONSE = _descriptor.Descriptor(
- name="ListInvoiceResponse",
- full_name="lnrpc.ListInvoiceResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="invoices",
- full_name="lnrpc.ListInvoiceResponse.invoices",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_index_offset",
- full_name="lnrpc.ListInvoiceResponse.last_index_offset",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="first_index_offset",
- full_name="lnrpc.ListInvoiceResponse.first_index_offset",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=19769,
- serialized_end=19879,
-)
-
-
-_INVOICESUBSCRIPTION = _descriptor.Descriptor(
- name="InvoiceSubscription",
- full_name="lnrpc.InvoiceSubscription",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="add_index",
- full_name="lnrpc.InvoiceSubscription.add_index",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="settle_index",
- full_name="lnrpc.InvoiceSubscription.settle_index",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=19881,
- serialized_end=19943,
-)
-
-
-_PAYMENT = _descriptor.Descriptor(
- name="Payment",
- full_name="lnrpc.Payment",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="payment_hash",
- full_name="lnrpc.Payment.payment_hash",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.Payment.value",
- index=1,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="creation_date",
- full_name="lnrpc.Payment.creation_date",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee",
- full_name="lnrpc.Payment.fee",
- index=3,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_preimage",
- full_name="lnrpc.Payment.payment_preimage",
- index=4,
- number=6,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value_sat",
- full_name="lnrpc.Payment.value_sat",
- index=5,
- number=7,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value_msat",
- full_name="lnrpc.Payment.value_msat",
- index=6,
- number=8,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_request",
- full_name="lnrpc.Payment.payment_request",
- index=7,
- number=9,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="status",
- full_name="lnrpc.Payment.status",
- index=8,
- number=10,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_sat",
- full_name="lnrpc.Payment.fee_sat",
- index=9,
- number=11,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_msat",
- full_name="lnrpc.Payment.fee_msat",
- index=10,
- number=12,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="creation_time_ns",
- full_name="lnrpc.Payment.creation_time_ns",
- index=11,
- number=13,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="htlcs",
- full_name="lnrpc.Payment.htlcs",
- index=12,
- number=14,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_index",
- full_name="lnrpc.Payment.payment_index",
- index=13,
- number=15,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="failure_reason",
- full_name="lnrpc.Payment.failure_reason",
- index=14,
- number=16,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[_PAYMENT_PAYMENTSTATUS],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=19946,
- serialized_end=20426,
-)
-
-
-_HTLCATTEMPT = _descriptor.Descriptor(
- name="HTLCAttempt",
- full_name="lnrpc.HTLCAttempt",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="attempt_id",
- full_name="lnrpc.HTLCAttempt.attempt_id",
- index=0,
- number=7,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="status",
- full_name="lnrpc.HTLCAttempt.status",
- index=1,
- number=1,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="route",
- full_name="lnrpc.HTLCAttempt.route",
- index=2,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="attempt_time_ns",
- full_name="lnrpc.HTLCAttempt.attempt_time_ns",
- index=3,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="resolve_time_ns",
- full_name="lnrpc.HTLCAttempt.resolve_time_ns",
- index=4,
- number=4,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="failure",
- full_name="lnrpc.HTLCAttempt.failure",
- index=5,
- number=5,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="preimage",
- full_name="lnrpc.HTLCAttempt.preimage",
- index=6,
- number=6,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[_HTLCATTEMPT_HTLCSTATUS],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=20429,
- serialized_end=20695,
-)
-
-
-_LISTPAYMENTSREQUEST = _descriptor.Descriptor(
- name="ListPaymentsRequest",
- full_name="lnrpc.ListPaymentsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="include_incomplete",
- full_name="lnrpc.ListPaymentsRequest.include_incomplete",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="index_offset",
- full_name="lnrpc.ListPaymentsRequest.index_offset",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_payments",
- full_name="lnrpc.ListPaymentsRequest.max_payments",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="reversed",
- full_name="lnrpc.ListPaymentsRequest.reversed",
- index=3,
- number=4,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=20697,
- serialized_end=20808,
-)
-
-
-_LISTPAYMENTSRESPONSE = _descriptor.Descriptor(
- name="ListPaymentsResponse",
- full_name="lnrpc.ListPaymentsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="payments",
- full_name="lnrpc.ListPaymentsResponse.payments",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="first_index_offset",
- full_name="lnrpc.ListPaymentsResponse.first_index_offset",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_index_offset",
- full_name="lnrpc.ListPaymentsResponse.last_index_offset",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=20810,
- serialized_end=20921,
-)
-
-
-_DELETEPAYMENTREQUEST = _descriptor.Descriptor(
- name="DeletePaymentRequest",
- full_name="lnrpc.DeletePaymentRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="payment_hash",
- full_name="lnrpc.DeletePaymentRequest.payment_hash",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="failed_htlcs_only",
- full_name="lnrpc.DeletePaymentRequest.failed_htlcs_only",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=20923,
- serialized_end=20994,
-)
-
-
-_DELETEALLPAYMENTSREQUEST = _descriptor.Descriptor(
- name="DeleteAllPaymentsRequest",
- full_name="lnrpc.DeleteAllPaymentsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="failed_payments_only",
- full_name="lnrpc.DeleteAllPaymentsRequest.failed_payments_only",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="failed_htlcs_only",
- full_name="lnrpc.DeleteAllPaymentsRequest.failed_htlcs_only",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=20996,
- serialized_end=21079,
-)
-
-
-_DELETEPAYMENTRESPONSE = _descriptor.Descriptor(
- name="DeletePaymentResponse",
- full_name="lnrpc.DeletePaymentResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21081,
- serialized_end=21104,
-)
-
-
-_DELETEALLPAYMENTSRESPONSE = _descriptor.Descriptor(
- name="DeleteAllPaymentsResponse",
- full_name="lnrpc.DeleteAllPaymentsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21106,
- serialized_end=21133,
-)
-
-
-_ABANDONCHANNELREQUEST = _descriptor.Descriptor(
- name="AbandonChannelRequest",
- full_name="lnrpc.AbandonChannelRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel_point",
- full_name="lnrpc.AbandonChannelRequest.channel_point",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="pending_funding_shim_only",
- full_name="lnrpc.AbandonChannelRequest.pending_funding_shim_only",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="i_know_what_i_am_doing",
- full_name="lnrpc.AbandonChannelRequest.i_know_what_i_am_doing",
- index=2,
- number=3,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21136,
- serialized_end=21270,
-)
-
-
-_ABANDONCHANNELRESPONSE = _descriptor.Descriptor(
- name="AbandonChannelResponse",
- full_name="lnrpc.AbandonChannelResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21272,
- serialized_end=21296,
-)
-
-
-_DEBUGLEVELREQUEST = _descriptor.Descriptor(
- name="DebugLevelRequest",
- full_name="lnrpc.DebugLevelRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="show",
- full_name="lnrpc.DebugLevelRequest.show",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="level_spec",
- full_name="lnrpc.DebugLevelRequest.level_spec",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21298,
- serialized_end=21351,
-)
-
-
-_DEBUGLEVELRESPONSE = _descriptor.Descriptor(
- name="DebugLevelResponse",
- full_name="lnrpc.DebugLevelResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="sub_systems",
- full_name="lnrpc.DebugLevelResponse.sub_systems",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21353,
- serialized_end=21394,
-)
-
-
-_PAYREQSTRING = _descriptor.Descriptor(
- name="PayReqString",
- full_name="lnrpc.PayReqString",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="pay_req",
- full_name="lnrpc.PayReqString.pay_req",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21396,
- serialized_end=21427,
-)
-
-
-_PAYREQ_FEATURESENTRY = _descriptor.Descriptor(
- name="FeaturesEntry",
- full_name="lnrpc.PayReq.FeaturesEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.PayReq.FeaturesEntry.key",
- index=0,
- number=1,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.PayReq.FeaturesEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=6559,
- serialized_end=6622,
-)
-
-_PAYREQ = _descriptor.Descriptor(
- name="PayReq",
- full_name="lnrpc.PayReq",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="destination",
- full_name="lnrpc.PayReq.destination",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_hash",
- full_name="lnrpc.PayReq.payment_hash",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_satoshis",
- full_name="lnrpc.PayReq.num_satoshis",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="timestamp",
- full_name="lnrpc.PayReq.timestamp",
- index=3,
- number=4,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="expiry",
- full_name="lnrpc.PayReq.expiry",
- index=4,
- number=5,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="description",
- full_name="lnrpc.PayReq.description",
- index=5,
- number=6,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="description_hash",
- full_name="lnrpc.PayReq.description_hash",
- index=6,
- number=7,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fallback_addr",
- full_name="lnrpc.PayReq.fallback_addr",
- index=7,
- number=8,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="cltv_expiry",
- full_name="lnrpc.PayReq.cltv_expiry",
- index=8,
- number=9,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="route_hints",
- full_name="lnrpc.PayReq.route_hints",
- index=9,
- number=10,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="payment_addr",
- full_name="lnrpc.PayReq.payment_addr",
- index=10,
- number=11,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_msat",
- full_name="lnrpc.PayReq.num_msat",
- index=11,
- number=12,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="features",
- full_name="lnrpc.PayReq.features",
- index=12,
- number=13,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[_PAYREQ_FEATURESENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21430,
- serialized_end=21820,
-)
-
-
-_FEATURE = _descriptor.Descriptor(
- name="Feature",
- full_name="lnrpc.Feature",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="name",
- full_name="lnrpc.Feature.name",
- index=0,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="is_required",
- full_name="lnrpc.Feature.is_required",
- index=1,
- number=3,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="is_known",
- full_name="lnrpc.Feature.is_known",
- index=2,
- number=4,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21822,
- serialized_end=21884,
-)
-
-
-_FEEREPORTREQUEST = _descriptor.Descriptor(
- name="FeeReportRequest",
- full_name="lnrpc.FeeReportRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21886,
- serialized_end=21904,
-)
-
-
-_CHANNELFEEREPORT = _descriptor.Descriptor(
- name="ChannelFeeReport",
- full_name="lnrpc.ChannelFeeReport",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.ChannelFeeReport.chan_id",
- index=0,
- number=5,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channel_point",
- full_name="lnrpc.ChannelFeeReport.channel_point",
- index=1,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="base_fee_msat",
- full_name="lnrpc.ChannelFeeReport.base_fee_msat",
- index=2,
- number=2,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_per_mil",
- full_name="lnrpc.ChannelFeeReport.fee_per_mil",
- index=3,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_rate",
- full_name="lnrpc.ChannelFeeReport.fee_rate",
- index=4,
- number=4,
- type=1,
- cpp_type=5,
- label=1,
- has_default_value=False,
- default_value=float(0),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=21906,
- serialized_end=22030,
-)
-
-
-_FEEREPORTRESPONSE = _descriptor.Descriptor(
- name="FeeReportResponse",
- full_name="lnrpc.FeeReportResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="channel_fees",
- full_name="lnrpc.FeeReportResponse.channel_fees",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="day_fee_sum",
- full_name="lnrpc.FeeReportResponse.day_fee_sum",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="week_fee_sum",
- full_name="lnrpc.FeeReportResponse.week_fee_sum",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="month_fee_sum",
- full_name="lnrpc.FeeReportResponse.month_fee_sum",
- index=3,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=22033,
- serialized_end=22165,
-)
-
-
-_POLICYUPDATEREQUEST = _descriptor.Descriptor(
- name="PolicyUpdateRequest",
- full_name="lnrpc.PolicyUpdateRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="global",
- full_name="lnrpc.PolicyUpdateRequest.global",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_point",
- full_name="lnrpc.PolicyUpdateRequest.chan_point",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="base_fee_msat",
- full_name="lnrpc.PolicyUpdateRequest.base_fee_msat",
- index=2,
- number=3,
- type=3,
- cpp_type=2,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_rate",
- full_name="lnrpc.PolicyUpdateRequest.fee_rate",
- index=3,
- number=4,
- type=1,
- cpp_type=5,
- label=1,
- has_default_value=False,
- default_value=float(0),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="time_lock_delta",
- full_name="lnrpc.PolicyUpdateRequest.time_lock_delta",
- index=4,
- number=5,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="max_htlc_msat",
- full_name="lnrpc.PolicyUpdateRequest.max_htlc_msat",
- index=5,
- number=6,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_htlc_msat",
- full_name="lnrpc.PolicyUpdateRequest.min_htlc_msat",
- index=6,
- number=7,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="min_htlc_msat_specified",
- full_name="lnrpc.PolicyUpdateRequest.min_htlc_msat_specified",
- index=7,
- number=8,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="scope",
- full_name="lnrpc.PolicyUpdateRequest.scope",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=22168,
- serialized_end=22404,
-)
-
-
-_FAILEDUPDATE = _descriptor.Descriptor(
- name="FailedUpdate",
- full_name="lnrpc.FailedUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="outpoint",
- full_name="lnrpc.FailedUpdate.outpoint",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="reason",
- full_name="lnrpc.FailedUpdate.reason",
- index=1,
- number=2,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="update_error",
- full_name="lnrpc.FailedUpdate.update_error",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=22406,
- serialized_end=22515,
-)
-
-
-_POLICYUPDATERESPONSE = _descriptor.Descriptor(
- name="PolicyUpdateResponse",
- full_name="lnrpc.PolicyUpdateResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="failed_updates",
- full_name="lnrpc.PolicyUpdateResponse.failed_updates",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=22517,
- serialized_end=22584,
-)
-
-
-_FORWARDINGHISTORYREQUEST = _descriptor.Descriptor(
- name="ForwardingHistoryRequest",
- full_name="lnrpc.ForwardingHistoryRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="start_time",
- full_name="lnrpc.ForwardingHistoryRequest.start_time",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="end_time",
- full_name="lnrpc.ForwardingHistoryRequest.end_time",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="index_offset",
- full_name="lnrpc.ForwardingHistoryRequest.index_offset",
- index=2,
- number=3,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="num_max_events",
- full_name="lnrpc.ForwardingHistoryRequest.num_max_events",
- index=3,
- number=4,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=22586,
- serialized_end=22696,
-)
-
-
-_FORWARDINGEVENT = _descriptor.Descriptor(
- name="ForwardingEvent",
- full_name="lnrpc.ForwardingEvent",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="timestamp",
- full_name="lnrpc.ForwardingEvent.timestamp",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"\030\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_id_in",
- full_name="lnrpc.ForwardingEvent.chan_id_in",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_id_out",
- full_name="lnrpc.ForwardingEvent.chan_id_out",
- index=2,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_in",
- full_name="lnrpc.ForwardingEvent.amt_in",
- index=3,
- number=5,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_out",
- full_name="lnrpc.ForwardingEvent.amt_out",
- index=4,
- number=6,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee",
- full_name="lnrpc.ForwardingEvent.fee",
- index=5,
- number=7,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_msat",
- full_name="lnrpc.ForwardingEvent.fee_msat",
- index=6,
- number=8,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_in_msat",
- full_name="lnrpc.ForwardingEvent.amt_in_msat",
- index=7,
- number=9,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="amt_out_msat",
- full_name="lnrpc.ForwardingEvent.amt_out_msat",
- index=8,
- number=10,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="timestamp_ns",
- full_name="lnrpc.ForwardingEvent.timestamp_ns",
- index=9,
- number=11,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=22699,
- serialized_end=22917,
-)
-
-
-_FORWARDINGHISTORYRESPONSE = _descriptor.Descriptor(
- name="ForwardingHistoryResponse",
- full_name="lnrpc.ForwardingHistoryResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="forwarding_events",
- full_name="lnrpc.ForwardingHistoryResponse.forwarding_events",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="last_offset_index",
- full_name="lnrpc.ForwardingHistoryResponse.last_offset_index",
- index=1,
- number=2,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=22919,
- serialized_end=23024,
-)
-
-
-_EXPORTCHANNELBACKUPREQUEST = _descriptor.Descriptor(
- name="ExportChannelBackupRequest",
- full_name="lnrpc.ExportChannelBackupRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_point",
- full_name="lnrpc.ExportChannelBackupRequest.chan_point",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23026,
- serialized_end=23095,
-)
-
-
-_CHANNELBACKUP = _descriptor.Descriptor(
- name="ChannelBackup",
- full_name="lnrpc.ChannelBackup",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_point",
- full_name="lnrpc.ChannelBackup.chan_point",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_backup",
- full_name="lnrpc.ChannelBackup.chan_backup",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23097,
- serialized_end=23174,
-)
-
-
-_MULTICHANBACKUP = _descriptor.Descriptor(
- name="MultiChanBackup",
- full_name="lnrpc.MultiChanBackup",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_points",
- full_name="lnrpc.MultiChanBackup.chan_points",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="multi_chan_backup",
- full_name="lnrpc.MultiChanBackup.multi_chan_backup",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23176,
- serialized_end=23262,
-)
-
-
-_CHANBACKUPEXPORTREQUEST = _descriptor.Descriptor(
- name="ChanBackupExportRequest",
- full_name="lnrpc.ChanBackupExportRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23264,
- serialized_end=23289,
-)
-
-
-_CHANBACKUPSNAPSHOT = _descriptor.Descriptor(
- name="ChanBackupSnapshot",
- full_name="lnrpc.ChanBackupSnapshot",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="single_chan_backups",
- full_name="lnrpc.ChanBackupSnapshot.single_chan_backups",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="multi_chan_backup",
- full_name="lnrpc.ChanBackupSnapshot.multi_chan_backup",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23291,
- serialized_end=23414,
-)
-
-
-_CHANNELBACKUPS = _descriptor.Descriptor(
- name="ChannelBackups",
- full_name="lnrpc.ChannelBackups",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_backups",
- full_name="lnrpc.ChannelBackups.chan_backups",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23416,
- serialized_end=23476,
-)
-
-
-_RESTORECHANBACKUPREQUEST = _descriptor.Descriptor(
- name="RestoreChanBackupRequest",
- full_name="lnrpc.RestoreChanBackupRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="chan_backups",
- full_name="lnrpc.RestoreChanBackupRequest.chan_backups",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="multi_chan_backup",
- full_name="lnrpc.RestoreChanBackupRequest.multi_chan_backup",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="backup",
- full_name="lnrpc.RestoreChanBackupRequest.backup",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=23478,
- serialized_end=23590,
-)
-
-
-_RESTOREBACKUPRESPONSE = _descriptor.Descriptor(
- name="RestoreBackupResponse",
- full_name="lnrpc.RestoreBackupResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23592,
- serialized_end=23615,
-)
-
-
-_CHANNELBACKUPSUBSCRIPTION = _descriptor.Descriptor(
- name="ChannelBackupSubscription",
- full_name="lnrpc.ChannelBackupSubscription",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23617,
- serialized_end=23644,
-)
-
-
-_VERIFYCHANBACKUPRESPONSE = _descriptor.Descriptor(
- name="VerifyChanBackupResponse",
- full_name="lnrpc.VerifyChanBackupResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23646,
- serialized_end=23672,
-)
-
-
-_MACAROONPERMISSION = _descriptor.Descriptor(
- name="MacaroonPermission",
- full_name="lnrpc.MacaroonPermission",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="entity",
- full_name="lnrpc.MacaroonPermission.entity",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="action",
- full_name="lnrpc.MacaroonPermission.action",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23674,
- serialized_end=23726,
-)
-
-
-_BAKEMACAROONREQUEST = _descriptor.Descriptor(
- name="BakeMacaroonRequest",
- full_name="lnrpc.BakeMacaroonRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="permissions",
- full_name="lnrpc.BakeMacaroonRequest.permissions",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="root_key_id",
- full_name="lnrpc.BakeMacaroonRequest.root_key_id",
- index=1,
- number=2,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="allow_external_permissions",
- full_name="lnrpc.BakeMacaroonRequest.allow_external_permissions",
- index=2,
- number=3,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23728,
- serialized_end=23854,
-)
-
-
-_BAKEMACAROONRESPONSE = _descriptor.Descriptor(
- name="BakeMacaroonResponse",
- full_name="lnrpc.BakeMacaroonResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="macaroon",
- full_name="lnrpc.BakeMacaroonResponse.macaroon",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23856,
- serialized_end=23896,
-)
-
-
-_LISTMACAROONIDSREQUEST = _descriptor.Descriptor(
- name="ListMacaroonIDsRequest",
- full_name="lnrpc.ListMacaroonIDsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23898,
- serialized_end=23922,
-)
-
-
-_LISTMACAROONIDSRESPONSE = _descriptor.Descriptor(
- name="ListMacaroonIDsResponse",
- full_name="lnrpc.ListMacaroonIDsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="root_key_ids",
- full_name="lnrpc.ListMacaroonIDsResponse.root_key_ids",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23924,
- serialized_end=23971,
-)
-
-
-_DELETEMACAROONIDREQUEST = _descriptor.Descriptor(
- name="DeleteMacaroonIDRequest",
- full_name="lnrpc.DeleteMacaroonIDRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="root_key_id",
- full_name="lnrpc.DeleteMacaroonIDRequest.root_key_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=23973,
- serialized_end=24019,
-)
-
-
-_DELETEMACAROONIDRESPONSE = _descriptor.Descriptor(
- name="DeleteMacaroonIDResponse",
- full_name="lnrpc.DeleteMacaroonIDResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="deleted",
- full_name="lnrpc.DeleteMacaroonIDResponse.deleted",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=24021,
- serialized_end=24064,
-)
-
-
-_MACAROONPERMISSIONLIST = _descriptor.Descriptor(
- name="MacaroonPermissionList",
- full_name="lnrpc.MacaroonPermissionList",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="permissions",
- full_name="lnrpc.MacaroonPermissionList.permissions",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=24066,
- serialized_end=24138,
-)
-
-
-_LISTPERMISSIONSREQUEST = _descriptor.Descriptor(
- name="ListPermissionsRequest",
- full_name="lnrpc.ListPermissionsRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=24140,
- serialized_end=24164,
-)
-
-
-_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY = _descriptor.Descriptor(
- name="MethodPermissionsEntry",
- full_name="lnrpc.ListPermissionsResponse.MethodPermissionsEntry",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="key",
- full_name="lnrpc.ListPermissionsResponse.MethodPermissionsEntry.key",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="value",
- full_name="lnrpc.ListPermissionsResponse.MethodPermissionsEntry.value",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=b"8\001",
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=24277,
- serialized_end=24364,
-)
-
-_LISTPERMISSIONSRESPONSE = _descriptor.Descriptor(
- name="ListPermissionsResponse",
- full_name="lnrpc.ListPermissionsResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="method_permissions",
- full_name="lnrpc.ListPermissionsResponse.method_permissions",
- index=0,
- number=1,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=24167,
- serialized_end=24364,
-)
-
-
-_FAILURE = _descriptor.Descriptor(
- name="Failure",
- full_name="lnrpc.Failure",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="code",
- full_name="lnrpc.Failure.code",
- index=0,
- number=1,
- type=14,
- cpp_type=8,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channel_update",
- full_name="lnrpc.Failure.channel_update",
- index=1,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="htlc_msat",
- full_name="lnrpc.Failure.htlc_msat",
- index=2,
- number=4,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="onion_sha_256",
- full_name="lnrpc.Failure.onion_sha_256",
- index=3,
- number=5,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="cltv_expiry",
- full_name="lnrpc.Failure.cltv_expiry",
- index=4,
- number=6,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="flags",
- full_name="lnrpc.Failure.flags",
- index=5,
- number=7,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="failure_source_index",
- full_name="lnrpc.Failure.failure_source_index",
- index=6,
- number=8,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="height",
- full_name="lnrpc.Failure.height",
- index=7,
- number=9,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[_FAILURE_FAILURECODE],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=24367,
- serialized_end=25348,
-)
-
-
-_CHANNELUPDATE = _descriptor.Descriptor(
- name="ChannelUpdate",
- full_name="lnrpc.ChannelUpdate",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="signature",
- full_name="lnrpc.ChannelUpdate.signature",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chain_hash",
- full_name="lnrpc.ChannelUpdate.chain_hash",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="chan_id",
- full_name="lnrpc.ChannelUpdate.chan_id",
- index=2,
- number=3,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=b"0\001",
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="timestamp",
- full_name="lnrpc.ChannelUpdate.timestamp",
- index=3,
- number=4,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="message_flags",
- full_name="lnrpc.ChannelUpdate.message_flags",
- index=4,
- number=10,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="channel_flags",
- full_name="lnrpc.ChannelUpdate.channel_flags",
- index=5,
- number=5,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="time_lock_delta",
- full_name="lnrpc.ChannelUpdate.time_lock_delta",
- index=6,
- number=6,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="htlc_minimum_msat",
- full_name="lnrpc.ChannelUpdate.htlc_minimum_msat",
- index=7,
- number=7,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="base_fee",
- full_name="lnrpc.ChannelUpdate.base_fee",
- index=8,
- number=8,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fee_rate",
- full_name="lnrpc.ChannelUpdate.fee_rate",
- index=9,
- number=9,
- type=13,
- cpp_type=3,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="htlc_maximum_msat",
- full_name="lnrpc.ChannelUpdate.htlc_maximum_msat",
- index=10,
- number=11,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="extra_opaque_data",
- full_name="lnrpc.ChannelUpdate.extra_opaque_data",
- index=11,
- number=12,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=25351,
- serialized_end=25633,
-)
-
-
-_MACAROONID = _descriptor.Descriptor(
- name="MacaroonId",
- full_name="lnrpc.MacaroonId",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="nonce",
- full_name="lnrpc.MacaroonId.nonce",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="storageId",
- full_name="lnrpc.MacaroonId.storageId",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="ops",
- full_name="lnrpc.MacaroonId.ops",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=25635,
- serialized_end=25705,
-)
-
-
-_OP = _descriptor.Descriptor(
- name="Op",
- full_name="lnrpc.Op",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="entity",
- full_name="lnrpc.Op.entity",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="actions",
- full_name="lnrpc.Op.actions",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=25707,
- serialized_end=25744,
-)
-
-
-_CHECKMACPERMREQUEST = _descriptor.Descriptor(
- name="CheckMacPermRequest",
- full_name="lnrpc.CheckMacPermRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="macaroon",
- full_name="lnrpc.CheckMacPermRequest.macaroon",
- index=0,
- number=1,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="permissions",
- full_name="lnrpc.CheckMacPermRequest.permissions",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=3,
- has_default_value=False,
- default_value=[],
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="fullMethod",
- full_name="lnrpc.CheckMacPermRequest.fullMethod",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=25746,
- serialized_end=25853,
-)
-
-
-_CHECKMACPERMRESPONSE = _descriptor.Descriptor(
- name="CheckMacPermResponse",
- full_name="lnrpc.CheckMacPermResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="valid",
- full_name="lnrpc.CheckMacPermResponse.valid",
- index=0,
- number=1,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=25855,
- serialized_end=25892,
-)
-
-
-_RPCMIDDLEWAREREQUEST = _descriptor.Descriptor(
- name="RPCMiddlewareRequest",
- full_name="lnrpc.RPCMiddlewareRequest",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="request_id",
- full_name="lnrpc.RPCMiddlewareRequest.request_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="raw_macaroon",
- full_name="lnrpc.RPCMiddlewareRequest.raw_macaroon",
- index=1,
- number=2,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="custom_caveat_condition",
- full_name="lnrpc.RPCMiddlewareRequest.custom_caveat_condition",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="stream_auth",
- full_name="lnrpc.RPCMiddlewareRequest.stream_auth",
- index=3,
- number=4,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="request",
- full_name="lnrpc.RPCMiddlewareRequest.request",
- index=4,
- number=5,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="response",
- full_name="lnrpc.RPCMiddlewareRequest.response",
- index=5,
- number=6,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="intercept_type",
- full_name="lnrpc.RPCMiddlewareRequest.intercept_type",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=25895,
- serialized_end=26129,
-)
-
-
-_STREAMAUTH = _descriptor.Descriptor(
- name="StreamAuth",
- full_name="lnrpc.StreamAuth",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="method_full_uri",
- full_name="lnrpc.StreamAuth.method_full_uri",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- )
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=26131,
- serialized_end=26168,
-)
-
-
-_RPCMESSAGE = _descriptor.Descriptor(
- name="RPCMessage",
- full_name="lnrpc.RPCMessage",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="method_full_uri",
- full_name="lnrpc.RPCMessage.method_full_uri",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="stream_rpc",
- full_name="lnrpc.RPCMessage.stream_rpc",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="type_name",
- full_name="lnrpc.RPCMessage.type_name",
- index=2,
- number=3,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="serialized",
- full_name="lnrpc.RPCMessage.serialized",
- index=3,
- number=4,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=26170,
- serialized_end=26266,
-)
-
-
-_RPCMIDDLEWARERESPONSE = _descriptor.Descriptor(
- name="RPCMiddlewareResponse",
- full_name="lnrpc.RPCMiddlewareResponse",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="request_id",
- full_name="lnrpc.RPCMiddlewareResponse.request_id",
- index=0,
- number=1,
- type=4,
- cpp_type=4,
- label=1,
- has_default_value=False,
- default_value=0,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="register",
- full_name="lnrpc.RPCMiddlewareResponse.register",
- index=1,
- number=2,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="feedback",
- full_name="lnrpc.RPCMiddlewareResponse.feedback",
- index=2,
- number=3,
- type=11,
- cpp_type=10,
- label=1,
- has_default_value=False,
- default_value=None,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[
- _descriptor.OneofDescriptor(
- name="middleware_message",
- full_name="lnrpc.RPCMiddlewareResponse.middleware_message",
- index=0,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[],
- )
- ],
- serialized_start=26269,
- serialized_end=26431,
-)
-
-
-_MIDDLEWAREREGISTRATION = _descriptor.Descriptor(
- name="MiddlewareRegistration",
- full_name="lnrpc.MiddlewareRegistration",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="middleware_name",
- full_name="lnrpc.MiddlewareRegistration.middleware_name",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="custom_macaroon_caveat_name",
- full_name="lnrpc.MiddlewareRegistration.custom_macaroon_caveat_name",
- index=1,
- number=2,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="read_only_mode",
- full_name="lnrpc.MiddlewareRegistration.read_only_mode",
- index=2,
- number=3,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=26433,
- serialized_end=26543,
-)
-
-
-_INTERCEPTFEEDBACK = _descriptor.Descriptor(
- name="InterceptFeedback",
- full_name="lnrpc.InterceptFeedback",
- filename=None,
- file=DESCRIPTOR,
- containing_type=None,
- create_key=_descriptor._internal_create_key,
- fields=[
- _descriptor.FieldDescriptor(
- name="error",
- full_name="lnrpc.InterceptFeedback.error",
- index=0,
- number=1,
- type=9,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"".decode("utf-8"),
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="replace_response",
- full_name="lnrpc.InterceptFeedback.replace_response",
- index=1,
- number=2,
- type=8,
- cpp_type=7,
- label=1,
- has_default_value=False,
- default_value=False,
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.FieldDescriptor(
- name="replacement_serialized",
- full_name="lnrpc.InterceptFeedback.replacement_serialized",
- index=2,
- number=3,
- type=12,
- cpp_type=9,
- label=1,
- has_default_value=False,
- default_value=b"",
- message_type=None,
- enum_type=None,
- containing_type=None,
- is_extension=False,
- extension_scope=None,
- serialized_options=None,
- file=DESCRIPTOR,
- create_key=_descriptor._internal_create_key,
- ),
- ],
- extensions=[],
- nested_types=[],
- enum_types=[],
- serialized_options=None,
- is_extendable=False,
- syntax="proto3",
- extension_ranges=[],
- oneofs=[],
- serialized_start=26545,
- serialized_end=26637,
-)
-
-_UTXO.fields_by_name["address_type"].enum_type = _ADDRESSTYPE
-_UTXO.fields_by_name["outpoint"].message_type = _OUTPOINT
-_TRANSACTIONDETAILS.fields_by_name["transactions"].message_type = _TRANSACTION
-_FEELIMIT.oneofs_by_name["limit"].fields.append(_FEELIMIT.fields_by_name["fixed"])
-_FEELIMIT.fields_by_name["fixed"].containing_oneof = _FEELIMIT.oneofs_by_name["limit"]
-_FEELIMIT.oneofs_by_name["limit"].fields.append(_FEELIMIT.fields_by_name["fixed_msat"])
-_FEELIMIT.fields_by_name["fixed_msat"].containing_oneof = _FEELIMIT.oneofs_by_name[
- "limit"
-]
-_FEELIMIT.oneofs_by_name["limit"].fields.append(_FEELIMIT.fields_by_name["percent"])
-_FEELIMIT.fields_by_name["percent"].containing_oneof = _FEELIMIT.oneofs_by_name["limit"]
-_SENDREQUEST_DESTCUSTOMRECORDSENTRY.containing_type = _SENDREQUEST
-_SENDREQUEST.fields_by_name["fee_limit"].message_type = _FEELIMIT
-_SENDREQUEST.fields_by_name[
- "dest_custom_records"
-].message_type = _SENDREQUEST_DESTCUSTOMRECORDSENTRY
-_SENDREQUEST.fields_by_name["dest_features"].enum_type = _FEATUREBIT
-_SENDRESPONSE.fields_by_name["payment_route"].message_type = _ROUTE
-_SENDTOROUTEREQUEST.fields_by_name["route"].message_type = _ROUTE
-_CHANNELACCEPTREQUEST.fields_by_name["commitment_type"].enum_type = _COMMITMENTTYPE
-_CHANNELPOINT.oneofs_by_name["funding_txid"].fields.append(
- _CHANNELPOINT.fields_by_name["funding_txid_bytes"]
-)
-_CHANNELPOINT.fields_by_name[
- "funding_txid_bytes"
-].containing_oneof = _CHANNELPOINT.oneofs_by_name["funding_txid"]
-_CHANNELPOINT.oneofs_by_name["funding_txid"].fields.append(
- _CHANNELPOINT.fields_by_name["funding_txid_str"]
-)
-_CHANNELPOINT.fields_by_name[
- "funding_txid_str"
-].containing_oneof = _CHANNELPOINT.oneofs_by_name["funding_txid"]
-_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY.containing_type = _ESTIMATEFEEREQUEST
-_ESTIMATEFEEREQUEST.fields_by_name[
- "AddrToAmount"
-].message_type = _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY
-_SENDMANYREQUEST_ADDRTOAMOUNTENTRY.containing_type = _SENDMANYREQUEST
-_SENDMANYREQUEST.fields_by_name[
- "AddrToAmount"
-].message_type = _SENDMANYREQUEST_ADDRTOAMOUNTENTRY
-_LISTUNSPENTRESPONSE.fields_by_name["utxos"].message_type = _UTXO
-_NEWADDRESSREQUEST.fields_by_name["type"].enum_type = _ADDRESSTYPE
-_CONNECTPEERREQUEST.fields_by_name["addr"].message_type = _LIGHTNINGADDRESS
-_CHANNEL.fields_by_name["pending_htlcs"].message_type = _HTLC
-_CHANNEL.fields_by_name["commitment_type"].enum_type = _COMMITMENTTYPE
-_CHANNEL.fields_by_name["local_constraints"].message_type = _CHANNELCONSTRAINTS
-_CHANNEL.fields_by_name["remote_constraints"].message_type = _CHANNELCONSTRAINTS
-_LISTCHANNELSRESPONSE.fields_by_name["channels"].message_type = _CHANNEL
-_CHANNELCLOSESUMMARY.fields_by_name[
- "close_type"
-].enum_type = _CHANNELCLOSESUMMARY_CLOSURETYPE
-_CHANNELCLOSESUMMARY.fields_by_name["open_initiator"].enum_type = _INITIATOR
-_CHANNELCLOSESUMMARY.fields_by_name["close_initiator"].enum_type = _INITIATOR
-_CHANNELCLOSESUMMARY.fields_by_name["resolutions"].message_type = _RESOLUTION
-_CHANNELCLOSESUMMARY_CLOSURETYPE.containing_type = _CHANNELCLOSESUMMARY
-_RESOLUTION.fields_by_name["resolution_type"].enum_type = _RESOLUTIONTYPE
-_RESOLUTION.fields_by_name["outcome"].enum_type = _RESOLUTIONOUTCOME
-_RESOLUTION.fields_by_name["outpoint"].message_type = _OUTPOINT
-_CLOSEDCHANNELSRESPONSE.fields_by_name["channels"].message_type = _CHANNELCLOSESUMMARY
-_PEER_FEATURESENTRY.fields_by_name["value"].message_type = _FEATURE
-_PEER_FEATURESENTRY.containing_type = _PEER
-_PEER.fields_by_name["sync_type"].enum_type = _PEER_SYNCTYPE
-_PEER.fields_by_name["features"].message_type = _PEER_FEATURESENTRY
-_PEER.fields_by_name["errors"].message_type = _TIMESTAMPEDERROR
-_PEER_SYNCTYPE.containing_type = _PEER
-_LISTPEERSRESPONSE.fields_by_name["peers"].message_type = _PEER
-_PEEREVENT.fields_by_name["type"].enum_type = _PEEREVENT_EVENTTYPE
-_PEEREVENT_EVENTTYPE.containing_type = _PEEREVENT
-_GETINFORESPONSE_FEATURESENTRY.fields_by_name["value"].message_type = _FEATURE
-_GETINFORESPONSE_FEATURESENTRY.containing_type = _GETINFORESPONSE
-_GETINFORESPONSE.fields_by_name["chains"].message_type = _CHAIN
-_GETINFORESPONSE.fields_by_name[
- "features"
-].message_type = _GETINFORESPONSE_FEATURESENTRY
-_CHANNELOPENUPDATE.fields_by_name["channel_point"].message_type = _CHANNELPOINT
-_CLOSECHANNELREQUEST.fields_by_name["channel_point"].message_type = _CHANNELPOINT
-_CLOSESTATUSUPDATE.fields_by_name["close_pending"].message_type = _PENDINGUPDATE
-_CLOSESTATUSUPDATE.fields_by_name["chan_close"].message_type = _CHANNELCLOSEUPDATE
-_CLOSESTATUSUPDATE.oneofs_by_name["update"].fields.append(
- _CLOSESTATUSUPDATE.fields_by_name["close_pending"]
-)
-_CLOSESTATUSUPDATE.fields_by_name[
- "close_pending"
-].containing_oneof = _CLOSESTATUSUPDATE.oneofs_by_name["update"]
-_CLOSESTATUSUPDATE.oneofs_by_name["update"].fields.append(
- _CLOSESTATUSUPDATE.fields_by_name["chan_close"]
-)
-_CLOSESTATUSUPDATE.fields_by_name[
- "chan_close"
-].containing_oneof = _CLOSESTATUSUPDATE.oneofs_by_name["update"]
-_BATCHOPENCHANNELREQUEST.fields_by_name["channels"].message_type = _BATCHOPENCHANNEL
-_BATCHOPENCHANNEL.fields_by_name["commitment_type"].enum_type = _COMMITMENTTYPE
-_BATCHOPENCHANNELRESPONSE.fields_by_name[
- "pending_channels"
-].message_type = _PENDINGUPDATE
-_OPENCHANNELREQUEST.fields_by_name["funding_shim"].message_type = _FUNDINGSHIM
-_OPENCHANNELREQUEST.fields_by_name["commitment_type"].enum_type = _COMMITMENTTYPE
-_OPENSTATUSUPDATE.fields_by_name["chan_pending"].message_type = _PENDINGUPDATE
-_OPENSTATUSUPDATE.fields_by_name["chan_open"].message_type = _CHANNELOPENUPDATE
-_OPENSTATUSUPDATE.fields_by_name["psbt_fund"].message_type = _READYFORPSBTFUNDING
-_OPENSTATUSUPDATE.oneofs_by_name["update"].fields.append(
- _OPENSTATUSUPDATE.fields_by_name["chan_pending"]
-)
-_OPENSTATUSUPDATE.fields_by_name[
- "chan_pending"
-].containing_oneof = _OPENSTATUSUPDATE.oneofs_by_name["update"]
-_OPENSTATUSUPDATE.oneofs_by_name["update"].fields.append(
- _OPENSTATUSUPDATE.fields_by_name["chan_open"]
-)
-_OPENSTATUSUPDATE.fields_by_name[
- "chan_open"
-].containing_oneof = _OPENSTATUSUPDATE.oneofs_by_name["update"]
-_OPENSTATUSUPDATE.oneofs_by_name["update"].fields.append(
- _OPENSTATUSUPDATE.fields_by_name["psbt_fund"]
-)
-_OPENSTATUSUPDATE.fields_by_name[
- "psbt_fund"
-].containing_oneof = _OPENSTATUSUPDATE.oneofs_by_name["update"]
-_KEYDESCRIPTOR.fields_by_name["key_loc"].message_type = _KEYLOCATOR
-_CHANPOINTSHIM.fields_by_name["chan_point"].message_type = _CHANNELPOINT
-_CHANPOINTSHIM.fields_by_name["local_key"].message_type = _KEYDESCRIPTOR
-_FUNDINGSHIM.fields_by_name["chan_point_shim"].message_type = _CHANPOINTSHIM
-_FUNDINGSHIM.fields_by_name["psbt_shim"].message_type = _PSBTSHIM
-_FUNDINGSHIM.oneofs_by_name["shim"].fields.append(
- _FUNDINGSHIM.fields_by_name["chan_point_shim"]
-)
-_FUNDINGSHIM.fields_by_name[
- "chan_point_shim"
-].containing_oneof = _FUNDINGSHIM.oneofs_by_name["shim"]
-_FUNDINGSHIM.oneofs_by_name["shim"].fields.append(
- _FUNDINGSHIM.fields_by_name["psbt_shim"]
-)
-_FUNDINGSHIM.fields_by_name["psbt_shim"].containing_oneof = _FUNDINGSHIM.oneofs_by_name[
- "shim"
-]
-_FUNDINGTRANSITIONMSG.fields_by_name["shim_register"].message_type = _FUNDINGSHIM
-_FUNDINGTRANSITIONMSG.fields_by_name["shim_cancel"].message_type = _FUNDINGSHIMCANCEL
-_FUNDINGTRANSITIONMSG.fields_by_name["psbt_verify"].message_type = _FUNDINGPSBTVERIFY
-_FUNDINGTRANSITIONMSG.fields_by_name[
- "psbt_finalize"
-].message_type = _FUNDINGPSBTFINALIZE
-_FUNDINGTRANSITIONMSG.oneofs_by_name["trigger"].fields.append(
- _FUNDINGTRANSITIONMSG.fields_by_name["shim_register"]
-)
-_FUNDINGTRANSITIONMSG.fields_by_name[
- "shim_register"
-].containing_oneof = _FUNDINGTRANSITIONMSG.oneofs_by_name["trigger"]
-_FUNDINGTRANSITIONMSG.oneofs_by_name["trigger"].fields.append(
- _FUNDINGTRANSITIONMSG.fields_by_name["shim_cancel"]
-)
-_FUNDINGTRANSITIONMSG.fields_by_name[
- "shim_cancel"
-].containing_oneof = _FUNDINGTRANSITIONMSG.oneofs_by_name["trigger"]
-_FUNDINGTRANSITIONMSG.oneofs_by_name["trigger"].fields.append(
- _FUNDINGTRANSITIONMSG.fields_by_name["psbt_verify"]
-)
-_FUNDINGTRANSITIONMSG.fields_by_name[
- "psbt_verify"
-].containing_oneof = _FUNDINGTRANSITIONMSG.oneofs_by_name["trigger"]
-_FUNDINGTRANSITIONMSG.oneofs_by_name["trigger"].fields.append(
- _FUNDINGTRANSITIONMSG.fields_by_name["psbt_finalize"]
-)
-_FUNDINGTRANSITIONMSG.fields_by_name[
- "psbt_finalize"
-].containing_oneof = _FUNDINGTRANSITIONMSG.oneofs_by_name["trigger"]
-_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL.fields_by_name[
- "initiator"
-].enum_type = _INITIATOR
-_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL.fields_by_name[
- "commitment_type"
-].enum_type = _COMMITMENTTYPE
-_PENDINGCHANNELSRESPONSE_PENDINGCHANNEL.containing_type = _PENDINGCHANNELSRESPONSE
-_PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL.fields_by_name[
- "channel"
-].message_type = _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL
-_PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL.containing_type = _PENDINGCHANNELSRESPONSE
-_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL.fields_by_name[
- "channel"
-].message_type = _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL
-_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL.fields_by_name[
- "commitments"
-].message_type = _PENDINGCHANNELSRESPONSE_COMMITMENTS
-_PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL.containing_type = _PENDINGCHANNELSRESPONSE
-_PENDINGCHANNELSRESPONSE_COMMITMENTS.containing_type = _PENDINGCHANNELSRESPONSE
-_PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL.fields_by_name[
- "channel"
-].message_type = _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL
-_PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL.containing_type = _PENDINGCHANNELSRESPONSE
-_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL.fields_by_name[
- "channel"
-].message_type = _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL
-_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL.fields_by_name[
- "pending_htlcs"
-].message_type = _PENDINGHTLC
-_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL.fields_by_name[
- "anchor"
-].enum_type = _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE
-_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL.containing_type = _PENDINGCHANNELSRESPONSE
-_PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE.containing_type = (
- _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL
-)
-_PENDINGCHANNELSRESPONSE.fields_by_name[
- "pending_open_channels"
-].message_type = _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL
-_PENDINGCHANNELSRESPONSE.fields_by_name[
- "pending_closing_channels"
-].message_type = _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL
-_PENDINGCHANNELSRESPONSE.fields_by_name[
- "pending_force_closing_channels"
-].message_type = _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL
-_PENDINGCHANNELSRESPONSE.fields_by_name[
- "waiting_close_channels"
-].message_type = _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL
-_CHANNELEVENTUPDATE.fields_by_name["open_channel"].message_type = _CHANNEL
-_CHANNELEVENTUPDATE.fields_by_name["closed_channel"].message_type = _CHANNELCLOSESUMMARY
-_CHANNELEVENTUPDATE.fields_by_name["active_channel"].message_type = _CHANNELPOINT
-_CHANNELEVENTUPDATE.fields_by_name["inactive_channel"].message_type = _CHANNELPOINT
-_CHANNELEVENTUPDATE.fields_by_name["pending_open_channel"].message_type = _PENDINGUPDATE
-_CHANNELEVENTUPDATE.fields_by_name[
- "fully_resolved_channel"
-].message_type = _CHANNELPOINT
-_CHANNELEVENTUPDATE.fields_by_name["type"].enum_type = _CHANNELEVENTUPDATE_UPDATETYPE
-_CHANNELEVENTUPDATE_UPDATETYPE.containing_type = _CHANNELEVENTUPDATE
-_CHANNELEVENTUPDATE.oneofs_by_name["channel"].fields.append(
- _CHANNELEVENTUPDATE.fields_by_name["open_channel"]
-)
-_CHANNELEVENTUPDATE.fields_by_name[
- "open_channel"
-].containing_oneof = _CHANNELEVENTUPDATE.oneofs_by_name["channel"]
-_CHANNELEVENTUPDATE.oneofs_by_name["channel"].fields.append(
- _CHANNELEVENTUPDATE.fields_by_name["closed_channel"]
-)
-_CHANNELEVENTUPDATE.fields_by_name[
- "closed_channel"
-].containing_oneof = _CHANNELEVENTUPDATE.oneofs_by_name["channel"]
-_CHANNELEVENTUPDATE.oneofs_by_name["channel"].fields.append(
- _CHANNELEVENTUPDATE.fields_by_name["active_channel"]
-)
-_CHANNELEVENTUPDATE.fields_by_name[
- "active_channel"
-].containing_oneof = _CHANNELEVENTUPDATE.oneofs_by_name["channel"]
-_CHANNELEVENTUPDATE.oneofs_by_name["channel"].fields.append(
- _CHANNELEVENTUPDATE.fields_by_name["inactive_channel"]
-)
-_CHANNELEVENTUPDATE.fields_by_name[
- "inactive_channel"
-].containing_oneof = _CHANNELEVENTUPDATE.oneofs_by_name["channel"]
-_CHANNELEVENTUPDATE.oneofs_by_name["channel"].fields.append(
- _CHANNELEVENTUPDATE.fields_by_name["pending_open_channel"]
-)
-_CHANNELEVENTUPDATE.fields_by_name[
- "pending_open_channel"
-].containing_oneof = _CHANNELEVENTUPDATE.oneofs_by_name["channel"]
-_CHANNELEVENTUPDATE.oneofs_by_name["channel"].fields.append(
- _CHANNELEVENTUPDATE.fields_by_name["fully_resolved_channel"]
-)
-_CHANNELEVENTUPDATE.fields_by_name[
- "fully_resolved_channel"
-].containing_oneof = _CHANNELEVENTUPDATE.oneofs_by_name["channel"]
-_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY.fields_by_name[
- "value"
-].message_type = _WALLETACCOUNTBALANCE
-_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY.containing_type = _WALLETBALANCERESPONSE
-_WALLETBALANCERESPONSE.fields_by_name[
- "account_balance"
-].message_type = _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY
-_CHANNELBALANCERESPONSE.fields_by_name["local_balance"].message_type = _AMOUNT
-_CHANNELBALANCERESPONSE.fields_by_name["remote_balance"].message_type = _AMOUNT
-_CHANNELBALANCERESPONSE.fields_by_name["unsettled_local_balance"].message_type = _AMOUNT
-_CHANNELBALANCERESPONSE.fields_by_name[
- "unsettled_remote_balance"
-].message_type = _AMOUNT
-_CHANNELBALANCERESPONSE.fields_by_name[
- "pending_open_local_balance"
-].message_type = _AMOUNT
-_CHANNELBALANCERESPONSE.fields_by_name[
- "pending_open_remote_balance"
-].message_type = _AMOUNT
-_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY.containing_type = _QUERYROUTESREQUEST
-_QUERYROUTESREQUEST.fields_by_name["fee_limit"].message_type = _FEELIMIT
-_QUERYROUTESREQUEST.fields_by_name["ignored_edges"].message_type = _EDGELOCATOR
-_QUERYROUTESREQUEST.fields_by_name["ignored_pairs"].message_type = _NODEPAIR
-_QUERYROUTESREQUEST.fields_by_name[
- "dest_custom_records"
-].message_type = _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY
-_QUERYROUTESREQUEST.fields_by_name["route_hints"].message_type = _ROUTEHINT
-_QUERYROUTESREQUEST.fields_by_name["dest_features"].enum_type = _FEATUREBIT
-_QUERYROUTESRESPONSE.fields_by_name["routes"].message_type = _ROUTE
-_HOP_CUSTOMRECORDSENTRY.containing_type = _HOP
-_HOP.fields_by_name["mpp_record"].message_type = _MPPRECORD
-_HOP.fields_by_name["amp_record"].message_type = _AMPRECORD
-_HOP.fields_by_name["custom_records"].message_type = _HOP_CUSTOMRECORDSENTRY
-_ROUTE.fields_by_name["hops"].message_type = _HOP
-_NODEINFO.fields_by_name["node"].message_type = _LIGHTNINGNODE
-_NODEINFO.fields_by_name["channels"].message_type = _CHANNELEDGE
-_LIGHTNINGNODE_FEATURESENTRY.fields_by_name["value"].message_type = _FEATURE
-_LIGHTNINGNODE_FEATURESENTRY.containing_type = _LIGHTNINGNODE
-_LIGHTNINGNODE.fields_by_name["addresses"].message_type = _NODEADDRESS
-_LIGHTNINGNODE.fields_by_name["features"].message_type = _LIGHTNINGNODE_FEATURESENTRY
-_CHANNELEDGE.fields_by_name["node1_policy"].message_type = _ROUTINGPOLICY
-_CHANNELEDGE.fields_by_name["node2_policy"].message_type = _ROUTINGPOLICY
-_CHANNELGRAPH.fields_by_name["nodes"].message_type = _LIGHTNINGNODE
-_CHANNELGRAPH.fields_by_name["edges"].message_type = _CHANNELEDGE
-_NODEMETRICSREQUEST.fields_by_name["types"].enum_type = _NODEMETRICTYPE
-_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY.fields_by_name[
- "value"
-].message_type = _FLOATMETRIC
-_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY.containing_type = _NODEMETRICSRESPONSE
-_NODEMETRICSRESPONSE.fields_by_name[
- "betweenness_centrality"
-].message_type = _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY
-_GRAPHTOPOLOGYUPDATE.fields_by_name["node_updates"].message_type = _NODEUPDATE
-_GRAPHTOPOLOGYUPDATE.fields_by_name["channel_updates"].message_type = _CHANNELEDGEUPDATE
-_GRAPHTOPOLOGYUPDATE.fields_by_name["closed_chans"].message_type = _CLOSEDCHANNELUPDATE
-_NODEUPDATE_FEATURESENTRY.fields_by_name["value"].message_type = _FEATURE
-_NODEUPDATE_FEATURESENTRY.containing_type = _NODEUPDATE
-_NODEUPDATE.fields_by_name["node_addresses"].message_type = _NODEADDRESS
-_NODEUPDATE.fields_by_name["features"].message_type = _NODEUPDATE_FEATURESENTRY
-_CHANNELEDGEUPDATE.fields_by_name["chan_point"].message_type = _CHANNELPOINT
-_CHANNELEDGEUPDATE.fields_by_name["routing_policy"].message_type = _ROUTINGPOLICY
-_CLOSEDCHANNELUPDATE.fields_by_name["chan_point"].message_type = _CHANNELPOINT
-_ROUTEHINT.fields_by_name["hop_hints"].message_type = _HOPHINT
-_AMPINVOICESTATE.fields_by_name["state"].enum_type = _INVOICEHTLCSTATE
-_INVOICE_FEATURESENTRY.fields_by_name["value"].message_type = _FEATURE
-_INVOICE_FEATURESENTRY.containing_type = _INVOICE
-_INVOICE_AMPINVOICESTATEENTRY.fields_by_name["value"].message_type = _AMPINVOICESTATE
-_INVOICE_AMPINVOICESTATEENTRY.containing_type = _INVOICE
-_INVOICE.fields_by_name["route_hints"].message_type = _ROUTEHINT
-_INVOICE.fields_by_name["state"].enum_type = _INVOICE_INVOICESTATE
-_INVOICE.fields_by_name["htlcs"].message_type = _INVOICEHTLC
-_INVOICE.fields_by_name["features"].message_type = _INVOICE_FEATURESENTRY
-_INVOICE.fields_by_name[
- "amp_invoice_state"
-].message_type = _INVOICE_AMPINVOICESTATEENTRY
-_INVOICE_INVOICESTATE.containing_type = _INVOICE
-_INVOICEHTLC_CUSTOMRECORDSENTRY.containing_type = _INVOICEHTLC
-_INVOICEHTLC.fields_by_name["state"].enum_type = _INVOICEHTLCSTATE
-_INVOICEHTLC.fields_by_name[
- "custom_records"
-].message_type = _INVOICEHTLC_CUSTOMRECORDSENTRY
-_INVOICEHTLC.fields_by_name["amp"].message_type = _AMP
-_LISTINVOICERESPONSE.fields_by_name["invoices"].message_type = _INVOICE
-_PAYMENT.fields_by_name["status"].enum_type = _PAYMENT_PAYMENTSTATUS
-_PAYMENT.fields_by_name["htlcs"].message_type = _HTLCATTEMPT
-_PAYMENT.fields_by_name["failure_reason"].enum_type = _PAYMENTFAILUREREASON
-_PAYMENT_PAYMENTSTATUS.containing_type = _PAYMENT
-_HTLCATTEMPT.fields_by_name["status"].enum_type = _HTLCATTEMPT_HTLCSTATUS
-_HTLCATTEMPT.fields_by_name["route"].message_type = _ROUTE
-_HTLCATTEMPT.fields_by_name["failure"].message_type = _FAILURE
-_HTLCATTEMPT_HTLCSTATUS.containing_type = _HTLCATTEMPT
-_LISTPAYMENTSRESPONSE.fields_by_name["payments"].message_type = _PAYMENT
-_ABANDONCHANNELREQUEST.fields_by_name["channel_point"].message_type = _CHANNELPOINT
-_PAYREQ_FEATURESENTRY.fields_by_name["value"].message_type = _FEATURE
-_PAYREQ_FEATURESENTRY.containing_type = _PAYREQ
-_PAYREQ.fields_by_name["route_hints"].message_type = _ROUTEHINT
-_PAYREQ.fields_by_name["features"].message_type = _PAYREQ_FEATURESENTRY
-_FEEREPORTRESPONSE.fields_by_name["channel_fees"].message_type = _CHANNELFEEREPORT
-_POLICYUPDATEREQUEST.fields_by_name["chan_point"].message_type = _CHANNELPOINT
-_POLICYUPDATEREQUEST.oneofs_by_name["scope"].fields.append(
- _POLICYUPDATEREQUEST.fields_by_name["global"]
-)
-_POLICYUPDATEREQUEST.fields_by_name[
- "global"
-].containing_oneof = _POLICYUPDATEREQUEST.oneofs_by_name["scope"]
-_POLICYUPDATEREQUEST.oneofs_by_name["scope"].fields.append(
- _POLICYUPDATEREQUEST.fields_by_name["chan_point"]
-)
-_POLICYUPDATEREQUEST.fields_by_name[
- "chan_point"
-].containing_oneof = _POLICYUPDATEREQUEST.oneofs_by_name["scope"]
-_FAILEDUPDATE.fields_by_name["outpoint"].message_type = _OUTPOINT
-_FAILEDUPDATE.fields_by_name["reason"].enum_type = _UPDATEFAILURE
-_POLICYUPDATERESPONSE.fields_by_name["failed_updates"].message_type = _FAILEDUPDATE
-_FORWARDINGHISTORYRESPONSE.fields_by_name[
- "forwarding_events"
-].message_type = _FORWARDINGEVENT
-_EXPORTCHANNELBACKUPREQUEST.fields_by_name["chan_point"].message_type = _CHANNELPOINT
-_CHANNELBACKUP.fields_by_name["chan_point"].message_type = _CHANNELPOINT
-_MULTICHANBACKUP.fields_by_name["chan_points"].message_type = _CHANNELPOINT
-_CHANBACKUPSNAPSHOT.fields_by_name["single_chan_backups"].message_type = _CHANNELBACKUPS
-_CHANBACKUPSNAPSHOT.fields_by_name["multi_chan_backup"].message_type = _MULTICHANBACKUP
-_CHANNELBACKUPS.fields_by_name["chan_backups"].message_type = _CHANNELBACKUP
-_RESTORECHANBACKUPREQUEST.fields_by_name["chan_backups"].message_type = _CHANNELBACKUPS
-_RESTORECHANBACKUPREQUEST.oneofs_by_name["backup"].fields.append(
- _RESTORECHANBACKUPREQUEST.fields_by_name["chan_backups"]
-)
-_RESTORECHANBACKUPREQUEST.fields_by_name[
- "chan_backups"
-].containing_oneof = _RESTORECHANBACKUPREQUEST.oneofs_by_name["backup"]
-_RESTORECHANBACKUPREQUEST.oneofs_by_name["backup"].fields.append(
- _RESTORECHANBACKUPREQUEST.fields_by_name["multi_chan_backup"]
-)
-_RESTORECHANBACKUPREQUEST.fields_by_name[
- "multi_chan_backup"
-].containing_oneof = _RESTORECHANBACKUPREQUEST.oneofs_by_name["backup"]
-_BAKEMACAROONREQUEST.fields_by_name["permissions"].message_type = _MACAROONPERMISSION
-_MACAROONPERMISSIONLIST.fields_by_name["permissions"].message_type = _MACAROONPERMISSION
-_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY.fields_by_name[
- "value"
-].message_type = _MACAROONPERMISSIONLIST
-_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY.containing_type = (
- _LISTPERMISSIONSRESPONSE
-)
-_LISTPERMISSIONSRESPONSE.fields_by_name[
- "method_permissions"
-].message_type = _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY
-_FAILURE.fields_by_name["code"].enum_type = _FAILURE_FAILURECODE
-_FAILURE.fields_by_name["channel_update"].message_type = _CHANNELUPDATE
-_FAILURE_FAILURECODE.containing_type = _FAILURE
-_MACAROONID.fields_by_name["ops"].message_type = _OP
-_CHECKMACPERMREQUEST.fields_by_name["permissions"].message_type = _MACAROONPERMISSION
-_RPCMIDDLEWAREREQUEST.fields_by_name["stream_auth"].message_type = _STREAMAUTH
-_RPCMIDDLEWAREREQUEST.fields_by_name["request"].message_type = _RPCMESSAGE
-_RPCMIDDLEWAREREQUEST.fields_by_name["response"].message_type = _RPCMESSAGE
-_RPCMIDDLEWAREREQUEST.oneofs_by_name["intercept_type"].fields.append(
- _RPCMIDDLEWAREREQUEST.fields_by_name["stream_auth"]
-)
-_RPCMIDDLEWAREREQUEST.fields_by_name[
- "stream_auth"
-].containing_oneof = _RPCMIDDLEWAREREQUEST.oneofs_by_name["intercept_type"]
-_RPCMIDDLEWAREREQUEST.oneofs_by_name["intercept_type"].fields.append(
- _RPCMIDDLEWAREREQUEST.fields_by_name["request"]
-)
-_RPCMIDDLEWAREREQUEST.fields_by_name[
- "request"
-].containing_oneof = _RPCMIDDLEWAREREQUEST.oneofs_by_name["intercept_type"]
-_RPCMIDDLEWAREREQUEST.oneofs_by_name["intercept_type"].fields.append(
- _RPCMIDDLEWAREREQUEST.fields_by_name["response"]
-)
-_RPCMIDDLEWAREREQUEST.fields_by_name[
- "response"
-].containing_oneof = _RPCMIDDLEWAREREQUEST.oneofs_by_name["intercept_type"]
-_RPCMIDDLEWARERESPONSE.fields_by_name["register"].message_type = _MIDDLEWAREREGISTRATION
-_RPCMIDDLEWARERESPONSE.fields_by_name["feedback"].message_type = _INTERCEPTFEEDBACK
-_RPCMIDDLEWARERESPONSE.oneofs_by_name["middleware_message"].fields.append(
- _RPCMIDDLEWARERESPONSE.fields_by_name["register"]
-)
-_RPCMIDDLEWARERESPONSE.fields_by_name[
- "register"
-].containing_oneof = _RPCMIDDLEWARERESPONSE.oneofs_by_name["middleware_message"]
-_RPCMIDDLEWARERESPONSE.oneofs_by_name["middleware_message"].fields.append(
- _RPCMIDDLEWARERESPONSE.fields_by_name["feedback"]
-)
-_RPCMIDDLEWARERESPONSE.fields_by_name[
- "feedback"
-].containing_oneof = _RPCMIDDLEWARERESPONSE.oneofs_by_name["middleware_message"]
-DESCRIPTOR.message_types_by_name[
+_SUBSCRIBECUSTOMMESSAGESREQUEST = DESCRIPTOR.message_types_by_name[
"SubscribeCustomMessagesRequest"
-] = _SUBSCRIBECUSTOMMESSAGESREQUEST
-DESCRIPTOR.message_types_by_name["CustomMessage"] = _CUSTOMMESSAGE
-DESCRIPTOR.message_types_by_name["SendCustomMessageRequest"] = _SENDCUSTOMMESSAGEREQUEST
-DESCRIPTOR.message_types_by_name[
+]
+_CUSTOMMESSAGE = DESCRIPTOR.message_types_by_name["CustomMessage"]
+_SENDCUSTOMMESSAGEREQUEST = DESCRIPTOR.message_types_by_name["SendCustomMessageRequest"]
+_SENDCUSTOMMESSAGERESPONSE = DESCRIPTOR.message_types_by_name[
"SendCustomMessageResponse"
-] = _SENDCUSTOMMESSAGERESPONSE
-DESCRIPTOR.message_types_by_name["Utxo"] = _UTXO
-DESCRIPTOR.message_types_by_name["Transaction"] = _TRANSACTION
-DESCRIPTOR.message_types_by_name["GetTransactionsRequest"] = _GETTRANSACTIONSREQUEST
-DESCRIPTOR.message_types_by_name["TransactionDetails"] = _TRANSACTIONDETAILS
-DESCRIPTOR.message_types_by_name["FeeLimit"] = _FEELIMIT
-DESCRIPTOR.message_types_by_name["SendRequest"] = _SENDREQUEST
-DESCRIPTOR.message_types_by_name["SendResponse"] = _SENDRESPONSE
-DESCRIPTOR.message_types_by_name["SendToRouteRequest"] = _SENDTOROUTEREQUEST
-DESCRIPTOR.message_types_by_name["ChannelAcceptRequest"] = _CHANNELACCEPTREQUEST
-DESCRIPTOR.message_types_by_name["ChannelAcceptResponse"] = _CHANNELACCEPTRESPONSE
-DESCRIPTOR.message_types_by_name["ChannelPoint"] = _CHANNELPOINT
-DESCRIPTOR.message_types_by_name["OutPoint"] = _OUTPOINT
-DESCRIPTOR.message_types_by_name["LightningAddress"] = _LIGHTNINGADDRESS
-DESCRIPTOR.message_types_by_name["EstimateFeeRequest"] = _ESTIMATEFEEREQUEST
-DESCRIPTOR.message_types_by_name["EstimateFeeResponse"] = _ESTIMATEFEERESPONSE
-DESCRIPTOR.message_types_by_name["SendManyRequest"] = _SENDMANYREQUEST
-DESCRIPTOR.message_types_by_name["SendManyResponse"] = _SENDMANYRESPONSE
-DESCRIPTOR.message_types_by_name["SendCoinsRequest"] = _SENDCOINSREQUEST
-DESCRIPTOR.message_types_by_name["SendCoinsResponse"] = _SENDCOINSRESPONSE
-DESCRIPTOR.message_types_by_name["ListUnspentRequest"] = _LISTUNSPENTREQUEST
-DESCRIPTOR.message_types_by_name["ListUnspentResponse"] = _LISTUNSPENTRESPONSE
-DESCRIPTOR.message_types_by_name["NewAddressRequest"] = _NEWADDRESSREQUEST
-DESCRIPTOR.message_types_by_name["NewAddressResponse"] = _NEWADDRESSRESPONSE
-DESCRIPTOR.message_types_by_name["SignMessageRequest"] = _SIGNMESSAGEREQUEST
-DESCRIPTOR.message_types_by_name["SignMessageResponse"] = _SIGNMESSAGERESPONSE
-DESCRIPTOR.message_types_by_name["VerifyMessageRequest"] = _VERIFYMESSAGEREQUEST
-DESCRIPTOR.message_types_by_name["VerifyMessageResponse"] = _VERIFYMESSAGERESPONSE
-DESCRIPTOR.message_types_by_name["ConnectPeerRequest"] = _CONNECTPEERREQUEST
-DESCRIPTOR.message_types_by_name["ConnectPeerResponse"] = _CONNECTPEERRESPONSE
-DESCRIPTOR.message_types_by_name["DisconnectPeerRequest"] = _DISCONNECTPEERREQUEST
-DESCRIPTOR.message_types_by_name["DisconnectPeerResponse"] = _DISCONNECTPEERRESPONSE
-DESCRIPTOR.message_types_by_name["HTLC"] = _HTLC
-DESCRIPTOR.message_types_by_name["ChannelConstraints"] = _CHANNELCONSTRAINTS
-DESCRIPTOR.message_types_by_name["Channel"] = _CHANNEL
-DESCRIPTOR.message_types_by_name["ListChannelsRequest"] = _LISTCHANNELSREQUEST
-DESCRIPTOR.message_types_by_name["ListChannelsResponse"] = _LISTCHANNELSRESPONSE
-DESCRIPTOR.message_types_by_name["ChannelCloseSummary"] = _CHANNELCLOSESUMMARY
-DESCRIPTOR.message_types_by_name["Resolution"] = _RESOLUTION
-DESCRIPTOR.message_types_by_name["ClosedChannelsRequest"] = _CLOSEDCHANNELSREQUEST
-DESCRIPTOR.message_types_by_name["ClosedChannelsResponse"] = _CLOSEDCHANNELSRESPONSE
-DESCRIPTOR.message_types_by_name["Peer"] = _PEER
-DESCRIPTOR.message_types_by_name["TimestampedError"] = _TIMESTAMPEDERROR
-DESCRIPTOR.message_types_by_name["ListPeersRequest"] = _LISTPEERSREQUEST
-DESCRIPTOR.message_types_by_name["ListPeersResponse"] = _LISTPEERSRESPONSE
-DESCRIPTOR.message_types_by_name["PeerEventSubscription"] = _PEEREVENTSUBSCRIPTION
-DESCRIPTOR.message_types_by_name["PeerEvent"] = _PEEREVENT
-DESCRIPTOR.message_types_by_name["GetInfoRequest"] = _GETINFOREQUEST
-DESCRIPTOR.message_types_by_name["GetInfoResponse"] = _GETINFORESPONSE
-DESCRIPTOR.message_types_by_name["GetRecoveryInfoRequest"] = _GETRECOVERYINFOREQUEST
-DESCRIPTOR.message_types_by_name["GetRecoveryInfoResponse"] = _GETRECOVERYINFORESPONSE
-DESCRIPTOR.message_types_by_name["Chain"] = _CHAIN
-DESCRIPTOR.message_types_by_name["ConfirmationUpdate"] = _CONFIRMATIONUPDATE
-DESCRIPTOR.message_types_by_name["ChannelOpenUpdate"] = _CHANNELOPENUPDATE
-DESCRIPTOR.message_types_by_name["ChannelCloseUpdate"] = _CHANNELCLOSEUPDATE
-DESCRIPTOR.message_types_by_name["CloseChannelRequest"] = _CLOSECHANNELREQUEST
-DESCRIPTOR.message_types_by_name["CloseStatusUpdate"] = _CLOSESTATUSUPDATE
-DESCRIPTOR.message_types_by_name["PendingUpdate"] = _PENDINGUPDATE
-DESCRIPTOR.message_types_by_name["ReadyForPsbtFunding"] = _READYFORPSBTFUNDING
-DESCRIPTOR.message_types_by_name["BatchOpenChannelRequest"] = _BATCHOPENCHANNELREQUEST
-DESCRIPTOR.message_types_by_name["BatchOpenChannel"] = _BATCHOPENCHANNEL
-DESCRIPTOR.message_types_by_name["BatchOpenChannelResponse"] = _BATCHOPENCHANNELRESPONSE
-DESCRIPTOR.message_types_by_name["OpenChannelRequest"] = _OPENCHANNELREQUEST
-DESCRIPTOR.message_types_by_name["OpenStatusUpdate"] = _OPENSTATUSUPDATE
-DESCRIPTOR.message_types_by_name["KeyLocator"] = _KEYLOCATOR
-DESCRIPTOR.message_types_by_name["KeyDescriptor"] = _KEYDESCRIPTOR
-DESCRIPTOR.message_types_by_name["ChanPointShim"] = _CHANPOINTSHIM
-DESCRIPTOR.message_types_by_name["PsbtShim"] = _PSBTSHIM
-DESCRIPTOR.message_types_by_name["FundingShim"] = _FUNDINGSHIM
-DESCRIPTOR.message_types_by_name["FundingShimCancel"] = _FUNDINGSHIMCANCEL
-DESCRIPTOR.message_types_by_name["FundingPsbtVerify"] = _FUNDINGPSBTVERIFY
-DESCRIPTOR.message_types_by_name["FundingPsbtFinalize"] = _FUNDINGPSBTFINALIZE
-DESCRIPTOR.message_types_by_name["FundingTransitionMsg"] = _FUNDINGTRANSITIONMSG
-DESCRIPTOR.message_types_by_name["FundingStateStepResp"] = _FUNDINGSTATESTEPRESP
-DESCRIPTOR.message_types_by_name["PendingHTLC"] = _PENDINGHTLC
-DESCRIPTOR.message_types_by_name["PendingChannelsRequest"] = _PENDINGCHANNELSREQUEST
-DESCRIPTOR.message_types_by_name["PendingChannelsResponse"] = _PENDINGCHANNELSRESPONSE
-DESCRIPTOR.message_types_by_name["ChannelEventSubscription"] = _CHANNELEVENTSUBSCRIPTION
-DESCRIPTOR.message_types_by_name["ChannelEventUpdate"] = _CHANNELEVENTUPDATE
-DESCRIPTOR.message_types_by_name["WalletAccountBalance"] = _WALLETACCOUNTBALANCE
-DESCRIPTOR.message_types_by_name["WalletBalanceRequest"] = _WALLETBALANCEREQUEST
-DESCRIPTOR.message_types_by_name["WalletBalanceResponse"] = _WALLETBALANCERESPONSE
-DESCRIPTOR.message_types_by_name["Amount"] = _AMOUNT
-DESCRIPTOR.message_types_by_name["ChannelBalanceRequest"] = _CHANNELBALANCEREQUEST
-DESCRIPTOR.message_types_by_name["ChannelBalanceResponse"] = _CHANNELBALANCERESPONSE
-DESCRIPTOR.message_types_by_name["QueryRoutesRequest"] = _QUERYROUTESREQUEST
-DESCRIPTOR.message_types_by_name["NodePair"] = _NODEPAIR
-DESCRIPTOR.message_types_by_name["EdgeLocator"] = _EDGELOCATOR
-DESCRIPTOR.message_types_by_name["QueryRoutesResponse"] = _QUERYROUTESRESPONSE
-DESCRIPTOR.message_types_by_name["Hop"] = _HOP
-DESCRIPTOR.message_types_by_name["MPPRecord"] = _MPPRECORD
-DESCRIPTOR.message_types_by_name["AMPRecord"] = _AMPRECORD
-DESCRIPTOR.message_types_by_name["Route"] = _ROUTE
-DESCRIPTOR.message_types_by_name["NodeInfoRequest"] = _NODEINFOREQUEST
-DESCRIPTOR.message_types_by_name["NodeInfo"] = _NODEINFO
-DESCRIPTOR.message_types_by_name["LightningNode"] = _LIGHTNINGNODE
-DESCRIPTOR.message_types_by_name["NodeAddress"] = _NODEADDRESS
-DESCRIPTOR.message_types_by_name["RoutingPolicy"] = _ROUTINGPOLICY
-DESCRIPTOR.message_types_by_name["ChannelEdge"] = _CHANNELEDGE
-DESCRIPTOR.message_types_by_name["ChannelGraphRequest"] = _CHANNELGRAPHREQUEST
-DESCRIPTOR.message_types_by_name["ChannelGraph"] = _CHANNELGRAPH
-DESCRIPTOR.message_types_by_name["NodeMetricsRequest"] = _NODEMETRICSREQUEST
-DESCRIPTOR.message_types_by_name["NodeMetricsResponse"] = _NODEMETRICSRESPONSE
-DESCRIPTOR.message_types_by_name["FloatMetric"] = _FLOATMETRIC
-DESCRIPTOR.message_types_by_name["ChanInfoRequest"] = _CHANINFOREQUEST
-DESCRIPTOR.message_types_by_name["NetworkInfoRequest"] = _NETWORKINFOREQUEST
-DESCRIPTOR.message_types_by_name["NetworkInfo"] = _NETWORKINFO
-DESCRIPTOR.message_types_by_name["StopRequest"] = _STOPREQUEST
-DESCRIPTOR.message_types_by_name["StopResponse"] = _STOPRESPONSE
-DESCRIPTOR.message_types_by_name[
+]
+_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"
-] = _GRAPHTOPOLOGYSUBSCRIPTION
-DESCRIPTOR.message_types_by_name["GraphTopologyUpdate"] = _GRAPHTOPOLOGYUPDATE
-DESCRIPTOR.message_types_by_name["NodeUpdate"] = _NODEUPDATE
-DESCRIPTOR.message_types_by_name["ChannelEdgeUpdate"] = _CHANNELEDGEUPDATE
-DESCRIPTOR.message_types_by_name["ClosedChannelUpdate"] = _CLOSEDCHANNELUPDATE
-DESCRIPTOR.message_types_by_name["HopHint"] = _HOPHINT
-DESCRIPTOR.message_types_by_name["SetID"] = _SETID
-DESCRIPTOR.message_types_by_name["RouteHint"] = _ROUTEHINT
-DESCRIPTOR.message_types_by_name["AMPInvoiceState"] = _AMPINVOICESTATE
-DESCRIPTOR.message_types_by_name["Invoice"] = _INVOICE
-DESCRIPTOR.message_types_by_name["InvoiceHTLC"] = _INVOICEHTLC
-DESCRIPTOR.message_types_by_name["AMP"] = _AMP
-DESCRIPTOR.message_types_by_name["AddInvoiceResponse"] = _ADDINVOICERESPONSE
-DESCRIPTOR.message_types_by_name["PaymentHash"] = _PAYMENTHASH
-DESCRIPTOR.message_types_by_name["ListInvoiceRequest"] = _LISTINVOICEREQUEST
-DESCRIPTOR.message_types_by_name["ListInvoiceResponse"] = _LISTINVOICERESPONSE
-DESCRIPTOR.message_types_by_name["InvoiceSubscription"] = _INVOICESUBSCRIPTION
-DESCRIPTOR.message_types_by_name["Payment"] = _PAYMENT
-DESCRIPTOR.message_types_by_name["HTLCAttempt"] = _HTLCATTEMPT
-DESCRIPTOR.message_types_by_name["ListPaymentsRequest"] = _LISTPAYMENTSREQUEST
-DESCRIPTOR.message_types_by_name["ListPaymentsResponse"] = _LISTPAYMENTSRESPONSE
-DESCRIPTOR.message_types_by_name["DeletePaymentRequest"] = _DELETEPAYMENTREQUEST
-DESCRIPTOR.message_types_by_name["DeleteAllPaymentsRequest"] = _DELETEALLPAYMENTSREQUEST
-DESCRIPTOR.message_types_by_name["DeletePaymentResponse"] = _DELETEPAYMENTRESPONSE
-DESCRIPTOR.message_types_by_name[
+]
+_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"
-] = _DELETEALLPAYMENTSRESPONSE
-DESCRIPTOR.message_types_by_name["AbandonChannelRequest"] = _ABANDONCHANNELREQUEST
-DESCRIPTOR.message_types_by_name["AbandonChannelResponse"] = _ABANDONCHANNELRESPONSE
-DESCRIPTOR.message_types_by_name["DebugLevelRequest"] = _DEBUGLEVELREQUEST
-DESCRIPTOR.message_types_by_name["DebugLevelResponse"] = _DEBUGLEVELRESPONSE
-DESCRIPTOR.message_types_by_name["PayReqString"] = _PAYREQSTRING
-DESCRIPTOR.message_types_by_name["PayReq"] = _PAYREQ
-DESCRIPTOR.message_types_by_name["Feature"] = _FEATURE
-DESCRIPTOR.message_types_by_name["FeeReportRequest"] = _FEEREPORTREQUEST
-DESCRIPTOR.message_types_by_name["ChannelFeeReport"] = _CHANNELFEEREPORT
-DESCRIPTOR.message_types_by_name["FeeReportResponse"] = _FEEREPORTRESPONSE
-DESCRIPTOR.message_types_by_name["PolicyUpdateRequest"] = _POLICYUPDATEREQUEST
-DESCRIPTOR.message_types_by_name["FailedUpdate"] = _FAILEDUPDATE
-DESCRIPTOR.message_types_by_name["PolicyUpdateResponse"] = _POLICYUPDATERESPONSE
-DESCRIPTOR.message_types_by_name["ForwardingHistoryRequest"] = _FORWARDINGHISTORYREQUEST
-DESCRIPTOR.message_types_by_name["ForwardingEvent"] = _FORWARDINGEVENT
-DESCRIPTOR.message_types_by_name[
+]
+_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"
-] = _FORWARDINGHISTORYRESPONSE
-DESCRIPTOR.message_types_by_name[
+]
+_EXPORTCHANNELBACKUPREQUEST = DESCRIPTOR.message_types_by_name[
"ExportChannelBackupRequest"
-] = _EXPORTCHANNELBACKUPREQUEST
-DESCRIPTOR.message_types_by_name["ChannelBackup"] = _CHANNELBACKUP
-DESCRIPTOR.message_types_by_name["MultiChanBackup"] = _MULTICHANBACKUP
-DESCRIPTOR.message_types_by_name["ChanBackupExportRequest"] = _CHANBACKUPEXPORTREQUEST
-DESCRIPTOR.message_types_by_name["ChanBackupSnapshot"] = _CHANBACKUPSNAPSHOT
-DESCRIPTOR.message_types_by_name["ChannelBackups"] = _CHANNELBACKUPS
-DESCRIPTOR.message_types_by_name["RestoreChanBackupRequest"] = _RESTORECHANBACKUPREQUEST
-DESCRIPTOR.message_types_by_name["RestoreBackupResponse"] = _RESTOREBACKUPRESPONSE
-DESCRIPTOR.message_types_by_name[
+]
+_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"
-] = _CHANNELBACKUPSUBSCRIPTION
-DESCRIPTOR.message_types_by_name["VerifyChanBackupResponse"] = _VERIFYCHANBACKUPRESPONSE
-DESCRIPTOR.message_types_by_name["MacaroonPermission"] = _MACAROONPERMISSION
-DESCRIPTOR.message_types_by_name["BakeMacaroonRequest"] = _BAKEMACAROONREQUEST
-DESCRIPTOR.message_types_by_name["BakeMacaroonResponse"] = _BAKEMACAROONRESPONSE
-DESCRIPTOR.message_types_by_name["ListMacaroonIDsRequest"] = _LISTMACAROONIDSREQUEST
-DESCRIPTOR.message_types_by_name["ListMacaroonIDsResponse"] = _LISTMACAROONIDSRESPONSE
-DESCRIPTOR.message_types_by_name["DeleteMacaroonIDRequest"] = _DELETEMACAROONIDREQUEST
-DESCRIPTOR.message_types_by_name["DeleteMacaroonIDResponse"] = _DELETEMACAROONIDRESPONSE
-DESCRIPTOR.message_types_by_name["MacaroonPermissionList"] = _MACAROONPERMISSIONLIST
-DESCRIPTOR.message_types_by_name["ListPermissionsRequest"] = _LISTPERMISSIONSREQUEST
-DESCRIPTOR.message_types_by_name["ListPermissionsResponse"] = _LISTPERMISSIONSRESPONSE
-DESCRIPTOR.message_types_by_name["Failure"] = _FAILURE
-DESCRIPTOR.message_types_by_name["ChannelUpdate"] = _CHANNELUPDATE
-DESCRIPTOR.message_types_by_name["MacaroonId"] = _MACAROONID
-DESCRIPTOR.message_types_by_name["Op"] = _OP
-DESCRIPTOR.message_types_by_name["CheckMacPermRequest"] = _CHECKMACPERMREQUEST
-DESCRIPTOR.message_types_by_name["CheckMacPermResponse"] = _CHECKMACPERMRESPONSE
-DESCRIPTOR.message_types_by_name["RPCMiddlewareRequest"] = _RPCMIDDLEWAREREQUEST
-DESCRIPTOR.message_types_by_name["StreamAuth"] = _STREAMAUTH
-DESCRIPTOR.message_types_by_name["RPCMessage"] = _RPCMESSAGE
-DESCRIPTOR.message_types_by_name["RPCMiddlewareResponse"] = _RPCMIDDLEWARERESPONSE
-DESCRIPTOR.message_types_by_name["MiddlewareRegistration"] = _MIDDLEWAREREGISTRATION
-DESCRIPTOR.message_types_by_name["InterceptFeedback"] = _INTERCEPTFEEDBACK
-DESCRIPTOR.enum_types_by_name["AddressType"] = _ADDRESSTYPE
-DESCRIPTOR.enum_types_by_name["CommitmentType"] = _COMMITMENTTYPE
-DESCRIPTOR.enum_types_by_name["Initiator"] = _INITIATOR
-DESCRIPTOR.enum_types_by_name["ResolutionType"] = _RESOLUTIONTYPE
-DESCRIPTOR.enum_types_by_name["ResolutionOutcome"] = _RESOLUTIONOUTCOME
-DESCRIPTOR.enum_types_by_name["NodeMetricType"] = _NODEMETRICTYPE
-DESCRIPTOR.enum_types_by_name["InvoiceHTLCState"] = _INVOICEHTLCSTATE
-DESCRIPTOR.enum_types_by_name["PaymentFailureReason"] = _PAYMENTFAILUREREASON
-DESCRIPTOR.enum_types_by_name["FeatureBit"] = _FEATUREBIT
-DESCRIPTOR.enum_types_by_name["UpdateFailure"] = _UPDATEFAILURE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+]
+_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,),
@@ -21376,6 +437,17 @@ Utxo = _reflection.GeneratedProtocolMessageType(
)
_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,),
@@ -21507,6 +579,17 @@ OutPoint = _reflection.GeneratedProtocolMessageType(
)
_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,),
@@ -23576,738 +2659,623 @@ InterceptFeedback = _reflection.GeneratedProtocolMessageType(
)
_sym_db.RegisterMessage(InterceptFeedback)
+_LIGHTNING = DESCRIPTOR.services_by_name["Lightning"]
+if _descriptor._USE_C_DESCRIPTORS == False:
-DESCRIPTOR._options = None
-_SENDREQUEST_DESTCUSTOMRECORDSENTRY._options = None
-_SENDREQUEST.fields_by_name["dest_string"]._options = None
-_SENDREQUEST.fields_by_name["payment_hash_string"]._options = None
-_SENDREQUEST.fields_by_name["outgoing_chan_id"]._options = None
-_SENDTOROUTEREQUEST.fields_by_name["payment_hash_string"]._options = None
-_ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._options = None
-_ESTIMATEFEERESPONSE.fields_by_name["feerate_sat_per_byte"]._options = None
-_SENDMANYREQUEST_ADDRTOAMOUNTENTRY._options = None
-_SENDMANYREQUEST.fields_by_name["sat_per_byte"]._options = None
-_SENDCOINSREQUEST.fields_by_name["sat_per_byte"]._options = None
-_CHANNEL.fields_by_name["chan_id"]._options = None
-_CHANNEL.fields_by_name["csv_delay"]._options = None
-_CHANNEL.fields_by_name["local_chan_reserve_sat"]._options = None
-_CHANNEL.fields_by_name["remote_chan_reserve_sat"]._options = None
-_CHANNEL.fields_by_name["static_remote_key"]._options = None
-_CHANNELCLOSESUMMARY.fields_by_name["chan_id"]._options = None
-_PEER_FEATURESENTRY._options = None
-_GETINFORESPONSE_FEATURESENTRY._options = None
-_GETINFORESPONSE.fields_by_name["testnet"]._options = None
-_CLOSECHANNELREQUEST.fields_by_name["sat_per_byte"]._options = None
-_OPENCHANNELREQUEST.fields_by_name["node_pubkey_string"]._options = None
-_OPENCHANNELREQUEST.fields_by_name["sat_per_byte"]._options = None
-_PENDINGCHANNELSRESPONSE.fields_by_name["pending_closing_channels"]._options = None
-_WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._options = None
-_CHANNELBALANCERESPONSE.fields_by_name["balance"]._options = None
-_CHANNELBALANCERESPONSE.fields_by_name["pending_open_balance"]._options = None
-_QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._options = None
-_QUERYROUTESREQUEST.fields_by_name["ignored_edges"]._options = None
-_QUERYROUTESREQUEST.fields_by_name["outgoing_chan_id"]._options = None
-_EDGELOCATOR.fields_by_name["channel_id"]._options = None
-_HOP_CUSTOMRECORDSENTRY._options = None
-_HOP.fields_by_name["chan_id"]._options = None
-_HOP.fields_by_name["chan_capacity"]._options = None
-_HOP.fields_by_name["amt_to_forward"]._options = None
-_HOP.fields_by_name["fee"]._options = None
-_ROUTE.fields_by_name["total_fees"]._options = None
-_ROUTE.fields_by_name["total_amt"]._options = None
-_LIGHTNINGNODE_FEATURESENTRY._options = None
-_CHANNELEDGE.fields_by_name["channel_id"]._options = None
-_CHANNELEDGE.fields_by_name["last_update"]._options = None
-_NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._options = None
-_CHANINFOREQUEST.fields_by_name["chan_id"]._options = None
-_NODEUPDATE_FEATURESENTRY._options = None
-_NODEUPDATE.fields_by_name["addresses"]._options = None
-_NODEUPDATE.fields_by_name["global_features"]._options = None
-_CHANNELEDGEUPDATE.fields_by_name["chan_id"]._options = None
-_CLOSEDCHANNELUPDATE.fields_by_name["chan_id"]._options = None
-_HOPHINT.fields_by_name["chan_id"]._options = None
-_INVOICE_FEATURESENTRY._options = None
-_INVOICE_AMPINVOICESTATEENTRY._options = None
-_INVOICE.fields_by_name["settled"]._options = None
-_INVOICE.fields_by_name["amt_paid"]._options = None
-_INVOICEHTLC_CUSTOMRECORDSENTRY._options = None
-_INVOICEHTLC.fields_by_name["chan_id"]._options = None
-_PAYMENTHASH.fields_by_name["r_hash_str"]._options = None
-_PAYMENT.fields_by_name["value"]._options = None
-_PAYMENT.fields_by_name["creation_date"]._options = None
-_PAYMENT.fields_by_name["fee"]._options = None
-_PAYREQ_FEATURESENTRY._options = None
-_CHANNELFEEREPORT.fields_by_name["chan_id"]._options = None
-_FORWARDINGEVENT.fields_by_name["timestamp"]._options = None
-_FORWARDINGEVENT.fields_by_name["chan_id_in"]._options = None
-_FORWARDINGEVENT.fields_by_name["chan_id_out"]._options = None
-_LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._options = None
-_CHANNELUPDATE.fields_by_name["chan_id"]._options = None
-
-_LIGHTNING = _descriptor.ServiceDescriptor(
- name="Lightning",
- full_name="lnrpc.Lightning",
- file=DESCRIPTOR,
- index=0,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- serialized_start=28310,
- serialized_end=33119,
- methods=[
- _descriptor.MethodDescriptor(
- name="WalletBalance",
- full_name="lnrpc.Lightning.WalletBalance",
- index=0,
- containing_service=None,
- input_type=_WALLETBALANCEREQUEST,
- output_type=_WALLETBALANCERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ChannelBalance",
- full_name="lnrpc.Lightning.ChannelBalance",
- index=1,
- containing_service=None,
- input_type=_CHANNELBALANCEREQUEST,
- output_type=_CHANNELBALANCERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="GetTransactions",
- full_name="lnrpc.Lightning.GetTransactions",
- index=2,
- containing_service=None,
- input_type=_GETTRANSACTIONSREQUEST,
- output_type=_TRANSACTIONDETAILS,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="EstimateFee",
- full_name="lnrpc.Lightning.EstimateFee",
- index=3,
- containing_service=None,
- input_type=_ESTIMATEFEEREQUEST,
- output_type=_ESTIMATEFEERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SendCoins",
- full_name="lnrpc.Lightning.SendCoins",
- index=4,
- containing_service=None,
- input_type=_SENDCOINSREQUEST,
- output_type=_SENDCOINSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ListUnspent",
- full_name="lnrpc.Lightning.ListUnspent",
- index=5,
- containing_service=None,
- input_type=_LISTUNSPENTREQUEST,
- output_type=_LISTUNSPENTRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SubscribeTransactions",
- full_name="lnrpc.Lightning.SubscribeTransactions",
- index=6,
- containing_service=None,
- input_type=_GETTRANSACTIONSREQUEST,
- output_type=_TRANSACTION,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SendMany",
- full_name="lnrpc.Lightning.SendMany",
- index=7,
- containing_service=None,
- input_type=_SENDMANYREQUEST,
- output_type=_SENDMANYRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="NewAddress",
- full_name="lnrpc.Lightning.NewAddress",
- index=8,
- containing_service=None,
- input_type=_NEWADDRESSREQUEST,
- output_type=_NEWADDRESSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SignMessage",
- full_name="lnrpc.Lightning.SignMessage",
- index=9,
- containing_service=None,
- input_type=_SIGNMESSAGEREQUEST,
- output_type=_SIGNMESSAGERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="VerifyMessage",
- full_name="lnrpc.Lightning.VerifyMessage",
- index=10,
- containing_service=None,
- input_type=_VERIFYMESSAGEREQUEST,
- output_type=_VERIFYMESSAGERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ConnectPeer",
- full_name="lnrpc.Lightning.ConnectPeer",
- index=11,
- containing_service=None,
- input_type=_CONNECTPEERREQUEST,
- output_type=_CONNECTPEERRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="DisconnectPeer",
- full_name="lnrpc.Lightning.DisconnectPeer",
- index=12,
- containing_service=None,
- input_type=_DISCONNECTPEERREQUEST,
- output_type=_DISCONNECTPEERRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ListPeers",
- full_name="lnrpc.Lightning.ListPeers",
- index=13,
- containing_service=None,
- input_type=_LISTPEERSREQUEST,
- output_type=_LISTPEERSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SubscribePeerEvents",
- full_name="lnrpc.Lightning.SubscribePeerEvents",
- index=14,
- containing_service=None,
- input_type=_PEEREVENTSUBSCRIPTION,
- output_type=_PEEREVENT,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="GetInfo",
- full_name="lnrpc.Lightning.GetInfo",
- index=15,
- containing_service=None,
- input_type=_GETINFOREQUEST,
- output_type=_GETINFORESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="GetRecoveryInfo",
- full_name="lnrpc.Lightning.GetRecoveryInfo",
- index=16,
- containing_service=None,
- input_type=_GETRECOVERYINFOREQUEST,
- output_type=_GETRECOVERYINFORESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="PendingChannels",
- full_name="lnrpc.Lightning.PendingChannels",
- index=17,
- containing_service=None,
- input_type=_PENDINGCHANNELSREQUEST,
- output_type=_PENDINGCHANNELSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ListChannels",
- full_name="lnrpc.Lightning.ListChannels",
- index=18,
- containing_service=None,
- input_type=_LISTCHANNELSREQUEST,
- output_type=_LISTCHANNELSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SubscribeChannelEvents",
- full_name="lnrpc.Lightning.SubscribeChannelEvents",
- index=19,
- containing_service=None,
- input_type=_CHANNELEVENTSUBSCRIPTION,
- output_type=_CHANNELEVENTUPDATE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ClosedChannels",
- full_name="lnrpc.Lightning.ClosedChannels",
- index=20,
- containing_service=None,
- input_type=_CLOSEDCHANNELSREQUEST,
- output_type=_CLOSEDCHANNELSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="OpenChannelSync",
- full_name="lnrpc.Lightning.OpenChannelSync",
- index=21,
- containing_service=None,
- input_type=_OPENCHANNELREQUEST,
- output_type=_CHANNELPOINT,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="OpenChannel",
- full_name="lnrpc.Lightning.OpenChannel",
- index=22,
- containing_service=None,
- input_type=_OPENCHANNELREQUEST,
- output_type=_OPENSTATUSUPDATE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="BatchOpenChannel",
- full_name="lnrpc.Lightning.BatchOpenChannel",
- index=23,
- containing_service=None,
- input_type=_BATCHOPENCHANNELREQUEST,
- output_type=_BATCHOPENCHANNELRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="FundingStateStep",
- full_name="lnrpc.Lightning.FundingStateStep",
- index=24,
- containing_service=None,
- input_type=_FUNDINGTRANSITIONMSG,
- output_type=_FUNDINGSTATESTEPRESP,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ChannelAcceptor",
- full_name="lnrpc.Lightning.ChannelAcceptor",
- index=25,
- containing_service=None,
- input_type=_CHANNELACCEPTRESPONSE,
- output_type=_CHANNELACCEPTREQUEST,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="CloseChannel",
- full_name="lnrpc.Lightning.CloseChannel",
- index=26,
- containing_service=None,
- input_type=_CLOSECHANNELREQUEST,
- output_type=_CLOSESTATUSUPDATE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="AbandonChannel",
- full_name="lnrpc.Lightning.AbandonChannel",
- index=27,
- containing_service=None,
- input_type=_ABANDONCHANNELREQUEST,
- output_type=_ABANDONCHANNELRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SendPayment",
- full_name="lnrpc.Lightning.SendPayment",
- index=28,
- containing_service=None,
- input_type=_SENDREQUEST,
- output_type=_SENDRESPONSE,
- serialized_options=b"\210\002\001",
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SendPaymentSync",
- full_name="lnrpc.Lightning.SendPaymentSync",
- index=29,
- containing_service=None,
- input_type=_SENDREQUEST,
- output_type=_SENDRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SendToRoute",
- full_name="lnrpc.Lightning.SendToRoute",
- index=30,
- containing_service=None,
- input_type=_SENDTOROUTEREQUEST,
- output_type=_SENDRESPONSE,
- serialized_options=b"\210\002\001",
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SendToRouteSync",
- full_name="lnrpc.Lightning.SendToRouteSync",
- index=31,
- containing_service=None,
- input_type=_SENDTOROUTEREQUEST,
- output_type=_SENDRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="AddInvoice",
- full_name="lnrpc.Lightning.AddInvoice",
- index=32,
- containing_service=None,
- input_type=_INVOICE,
- output_type=_ADDINVOICERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ListInvoices",
- full_name="lnrpc.Lightning.ListInvoices",
- index=33,
- containing_service=None,
- input_type=_LISTINVOICEREQUEST,
- output_type=_LISTINVOICERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="LookupInvoice",
- full_name="lnrpc.Lightning.LookupInvoice",
- index=34,
- containing_service=None,
- input_type=_PAYMENTHASH,
- output_type=_INVOICE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SubscribeInvoices",
- full_name="lnrpc.Lightning.SubscribeInvoices",
- index=35,
- containing_service=None,
- input_type=_INVOICESUBSCRIPTION,
- output_type=_INVOICE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="DecodePayReq",
- full_name="lnrpc.Lightning.DecodePayReq",
- index=36,
- containing_service=None,
- input_type=_PAYREQSTRING,
- output_type=_PAYREQ,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ListPayments",
- full_name="lnrpc.Lightning.ListPayments",
- index=37,
- containing_service=None,
- input_type=_LISTPAYMENTSREQUEST,
- output_type=_LISTPAYMENTSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="DeletePayment",
- full_name="lnrpc.Lightning.DeletePayment",
- index=38,
- containing_service=None,
- input_type=_DELETEPAYMENTREQUEST,
- output_type=_DELETEPAYMENTRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="DeleteAllPayments",
- full_name="lnrpc.Lightning.DeleteAllPayments",
- index=39,
- containing_service=None,
- input_type=_DELETEALLPAYMENTSREQUEST,
- output_type=_DELETEALLPAYMENTSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="DescribeGraph",
- full_name="lnrpc.Lightning.DescribeGraph",
- index=40,
- containing_service=None,
- input_type=_CHANNELGRAPHREQUEST,
- output_type=_CHANNELGRAPH,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="GetNodeMetrics",
- full_name="lnrpc.Lightning.GetNodeMetrics",
- index=41,
- containing_service=None,
- input_type=_NODEMETRICSREQUEST,
- output_type=_NODEMETRICSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="GetChanInfo",
- full_name="lnrpc.Lightning.GetChanInfo",
- index=42,
- containing_service=None,
- input_type=_CHANINFOREQUEST,
- output_type=_CHANNELEDGE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="GetNodeInfo",
- full_name="lnrpc.Lightning.GetNodeInfo",
- index=43,
- containing_service=None,
- input_type=_NODEINFOREQUEST,
- output_type=_NODEINFO,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="QueryRoutes",
- full_name="lnrpc.Lightning.QueryRoutes",
- index=44,
- containing_service=None,
- input_type=_QUERYROUTESREQUEST,
- output_type=_QUERYROUTESRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="GetNetworkInfo",
- full_name="lnrpc.Lightning.GetNetworkInfo",
- index=45,
- containing_service=None,
- input_type=_NETWORKINFOREQUEST,
- output_type=_NETWORKINFO,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="StopDaemon",
- full_name="lnrpc.Lightning.StopDaemon",
- index=46,
- containing_service=None,
- input_type=_STOPREQUEST,
- output_type=_STOPRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SubscribeChannelGraph",
- full_name="lnrpc.Lightning.SubscribeChannelGraph",
- index=47,
- containing_service=None,
- input_type=_GRAPHTOPOLOGYSUBSCRIPTION,
- output_type=_GRAPHTOPOLOGYUPDATE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="DebugLevel",
- full_name="lnrpc.Lightning.DebugLevel",
- index=48,
- containing_service=None,
- input_type=_DEBUGLEVELREQUEST,
- output_type=_DEBUGLEVELRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="FeeReport",
- full_name="lnrpc.Lightning.FeeReport",
- index=49,
- containing_service=None,
- input_type=_FEEREPORTREQUEST,
- output_type=_FEEREPORTRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="UpdateChannelPolicy",
- full_name="lnrpc.Lightning.UpdateChannelPolicy",
- index=50,
- containing_service=None,
- input_type=_POLICYUPDATEREQUEST,
- output_type=_POLICYUPDATERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ForwardingHistory",
- full_name="lnrpc.Lightning.ForwardingHistory",
- index=51,
- containing_service=None,
- input_type=_FORWARDINGHISTORYREQUEST,
- output_type=_FORWARDINGHISTORYRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ExportChannelBackup",
- full_name="lnrpc.Lightning.ExportChannelBackup",
- index=52,
- containing_service=None,
- input_type=_EXPORTCHANNELBACKUPREQUEST,
- output_type=_CHANNELBACKUP,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ExportAllChannelBackups",
- full_name="lnrpc.Lightning.ExportAllChannelBackups",
- index=53,
- containing_service=None,
- input_type=_CHANBACKUPEXPORTREQUEST,
- output_type=_CHANBACKUPSNAPSHOT,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="VerifyChanBackup",
- full_name="lnrpc.Lightning.VerifyChanBackup",
- index=54,
- containing_service=None,
- input_type=_CHANBACKUPSNAPSHOT,
- output_type=_VERIFYCHANBACKUPRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="RestoreChannelBackups",
- full_name="lnrpc.Lightning.RestoreChannelBackups",
- index=55,
- containing_service=None,
- input_type=_RESTORECHANBACKUPREQUEST,
- output_type=_RESTOREBACKUPRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SubscribeChannelBackups",
- full_name="lnrpc.Lightning.SubscribeChannelBackups",
- index=56,
- containing_service=None,
- input_type=_CHANNELBACKUPSUBSCRIPTION,
- output_type=_CHANBACKUPSNAPSHOT,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="BakeMacaroon",
- full_name="lnrpc.Lightning.BakeMacaroon",
- index=57,
- containing_service=None,
- input_type=_BAKEMACAROONREQUEST,
- output_type=_BAKEMACAROONRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ListMacaroonIDs",
- full_name="lnrpc.Lightning.ListMacaroonIDs",
- index=58,
- containing_service=None,
- input_type=_LISTMACAROONIDSREQUEST,
- output_type=_LISTMACAROONIDSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="DeleteMacaroonID",
- full_name="lnrpc.Lightning.DeleteMacaroonID",
- index=59,
- containing_service=None,
- input_type=_DELETEMACAROONIDREQUEST,
- output_type=_DELETEMACAROONIDRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="ListPermissions",
- full_name="lnrpc.Lightning.ListPermissions",
- index=60,
- containing_service=None,
- input_type=_LISTPERMISSIONSREQUEST,
- output_type=_LISTPERMISSIONSRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="CheckMacaroonPermissions",
- full_name="lnrpc.Lightning.CheckMacaroonPermissions",
- index=61,
- containing_service=None,
- input_type=_CHECKMACPERMREQUEST,
- output_type=_CHECKMACPERMRESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="RegisterRPCMiddleware",
- full_name="lnrpc.Lightning.RegisterRPCMiddleware",
- index=62,
- containing_service=None,
- input_type=_RPCMIDDLEWARERESPONSE,
- output_type=_RPCMIDDLEWAREREQUEST,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SendCustomMessage",
- full_name="lnrpc.Lightning.SendCustomMessage",
- index=63,
- containing_service=None,
- input_type=_SENDCUSTOMMESSAGEREQUEST,
- output_type=_SENDCUSTOMMESSAGERESPONSE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- _descriptor.MethodDescriptor(
- name="SubscribeCustomMessages",
- full_name="lnrpc.Lightning.SubscribeCustomMessages",
- index=64,
- containing_service=None,
- input_type=_SUBSCRIBECUSTOMMESSAGESREQUEST,
- output_type=_CUSTOMMESSAGE,
- serialized_options=None,
- create_key=_descriptor._internal_create_key,
- ),
- ],
-)
-_sym_db.RegisterServiceDescriptor(_LIGHTNING)
-
-DESCRIPTOR.services_by_name["Lightning"] = _LIGHTNING
-
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = b"Z%github.com/lightningnetwork/lnd/lnrpc"
+ _TRANSACTION.fields_by_name["dest_addresses"]._options = None
+ _TRANSACTION.fields_by_name["dest_addresses"]._serialized_options = b"\030\001"
+ _SENDREQUEST_DESTCUSTOMRECORDSENTRY._options = None
+ _SENDREQUEST_DESTCUSTOMRECORDSENTRY._serialized_options = b"8\001"
+ _SENDREQUEST.fields_by_name["dest_string"]._options = None
+ _SENDREQUEST.fields_by_name["dest_string"]._serialized_options = b"\030\001"
+ _SENDREQUEST.fields_by_name["payment_hash_string"]._options = None
+ _SENDREQUEST.fields_by_name["payment_hash_string"]._serialized_options = b"\030\001"
+ _SENDREQUEST.fields_by_name["outgoing_chan_id"]._options = None
+ _SENDREQUEST.fields_by_name["outgoing_chan_id"]._serialized_options = b"0\001"
+ _SENDTOROUTEREQUEST.fields_by_name["payment_hash_string"]._options = None
+ _SENDTOROUTEREQUEST.fields_by_name[
+ "payment_hash_string"
+ ]._serialized_options = b"\030\001"
+ _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._options = None
+ _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._serialized_options = b"8\001"
+ _ESTIMATEFEERESPONSE.fields_by_name["feerate_sat_per_byte"]._options = None
+ _ESTIMATEFEERESPONSE.fields_by_name[
+ "feerate_sat_per_byte"
+ ]._serialized_options = b"\030\001"
+ _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._options = None
+ _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._serialized_options = b"8\001"
+ _SENDMANYREQUEST.fields_by_name["sat_per_byte"]._options = None
+ _SENDMANYREQUEST.fields_by_name["sat_per_byte"]._serialized_options = b"\030\001"
+ _SENDCOINSREQUEST.fields_by_name["sat_per_byte"]._options = None
+ _SENDCOINSREQUEST.fields_by_name["sat_per_byte"]._serialized_options = b"\030\001"
+ _CHANNEL.fields_by_name["chan_id"]._options = None
+ _CHANNEL.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _CHANNEL.fields_by_name["csv_delay"]._options = None
+ _CHANNEL.fields_by_name["csv_delay"]._serialized_options = b"\030\001"
+ _CHANNEL.fields_by_name["local_chan_reserve_sat"]._options = None
+ _CHANNEL.fields_by_name["local_chan_reserve_sat"]._serialized_options = b"\030\001"
+ _CHANNEL.fields_by_name["remote_chan_reserve_sat"]._options = None
+ _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"
+ _CHANNELCLOSESUMMARY.fields_by_name["chan_id"]._options = None
+ _CHANNELCLOSESUMMARY.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _PEER_FEATURESENTRY._options = None
+ _PEER_FEATURESENTRY._serialized_options = b"8\001"
+ _GETINFORESPONSE_FEATURESENTRY._options = None
+ _GETINFORESPONSE_FEATURESENTRY._serialized_options = b"8\001"
+ _GETINFORESPONSE.fields_by_name["testnet"]._options = None
+ _GETINFORESPONSE.fields_by_name["testnet"]._serialized_options = b"\030\001"
+ _CLOSECHANNELREQUEST.fields_by_name["sat_per_byte"]._options = None
+ _CLOSECHANNELREQUEST.fields_by_name[
+ "sat_per_byte"
+ ]._serialized_options = b"\030\001"
+ _OPENCHANNELREQUEST.fields_by_name["node_pubkey_string"]._options = None
+ _OPENCHANNELREQUEST.fields_by_name[
+ "node_pubkey_string"
+ ]._serialized_options = b"\030\001"
+ _OPENCHANNELREQUEST.fields_by_name["sat_per_byte"]._options = None
+ _OPENCHANNELREQUEST.fields_by_name["sat_per_byte"]._serialized_options = b"\030\001"
+ _PENDINGCHANNELSRESPONSE.fields_by_name["pending_closing_channels"]._options = None
+ _PENDINGCHANNELSRESPONSE.fields_by_name[
+ "pending_closing_channels"
+ ]._serialized_options = b"\030\001"
+ _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._options = None
+ _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._serialized_options = b"8\001"
+ _CHANNELBALANCERESPONSE.fields_by_name["balance"]._options = None
+ _CHANNELBALANCERESPONSE.fields_by_name["balance"]._serialized_options = b"\030\001"
+ _CHANNELBALANCERESPONSE.fields_by_name["pending_open_balance"]._options = None
+ _CHANNELBALANCERESPONSE.fields_by_name[
+ "pending_open_balance"
+ ]._serialized_options = b"\030\001"
+ _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._options = None
+ _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._serialized_options = b"8\001"
+ _QUERYROUTESREQUEST.fields_by_name["ignored_edges"]._options = None
+ _QUERYROUTESREQUEST.fields_by_name[
+ "ignored_edges"
+ ]._serialized_options = b"\030\001"
+ _QUERYROUTESREQUEST.fields_by_name["outgoing_chan_id"]._options = None
+ _QUERYROUTESREQUEST.fields_by_name[
+ "outgoing_chan_id"
+ ]._serialized_options = b"0\001"
+ _EDGELOCATOR.fields_by_name["channel_id"]._options = None
+ _EDGELOCATOR.fields_by_name["channel_id"]._serialized_options = b"0\001"
+ _HOP_CUSTOMRECORDSENTRY._options = None
+ _HOP_CUSTOMRECORDSENTRY._serialized_options = b"8\001"
+ _HOP.fields_by_name["chan_id"]._options = None
+ _HOP.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _HOP.fields_by_name["chan_capacity"]._options = None
+ _HOP.fields_by_name["chan_capacity"]._serialized_options = b"\030\001"
+ _HOP.fields_by_name["amt_to_forward"]._options = None
+ _HOP.fields_by_name["amt_to_forward"]._serialized_options = b"\030\001"
+ _HOP.fields_by_name["fee"]._options = None
+ _HOP.fields_by_name["fee"]._serialized_options = b"\030\001"
+ _HOP.fields_by_name["tlv_payload"]._options = None
+ _HOP.fields_by_name["tlv_payload"]._serialized_options = b"\030\001"
+ _ROUTE.fields_by_name["total_fees"]._options = None
+ _ROUTE.fields_by_name["total_fees"]._serialized_options = b"\030\001"
+ _ROUTE.fields_by_name["total_amt"]._options = None
+ _ROUTE.fields_by_name["total_amt"]._serialized_options = b"\030\001"
+ _LIGHTNINGNODE_FEATURESENTRY._options = None
+ _LIGHTNINGNODE_FEATURESENTRY._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
+ _CHANNELEDGE.fields_by_name["last_update"]._serialized_options = b"\030\001"
+ _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._options = None
+ _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._serialized_options = b"8\001"
+ _CHANINFOREQUEST.fields_by_name["chan_id"]._options = None
+ _CHANINFOREQUEST.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _NODEUPDATE_FEATURESENTRY._options = None
+ _NODEUPDATE_FEATURESENTRY._serialized_options = b"8\001"
+ _NODEUPDATE.fields_by_name["addresses"]._options = None
+ _NODEUPDATE.fields_by_name["addresses"]._serialized_options = b"\030\001"
+ _NODEUPDATE.fields_by_name["global_features"]._options = None
+ _NODEUPDATE.fields_by_name["global_features"]._serialized_options = b"\030\001"
+ _CHANNELEDGEUPDATE.fields_by_name["chan_id"]._options = None
+ _CHANNELEDGEUPDATE.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _CLOSEDCHANNELUPDATE.fields_by_name["chan_id"]._options = None
+ _CLOSEDCHANNELUPDATE.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _HOPHINT.fields_by_name["chan_id"]._options = None
+ _HOPHINT.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _INVOICE_FEATURESENTRY._options = None
+ _INVOICE_FEATURESENTRY._serialized_options = b"8\001"
+ _INVOICE_AMPINVOICESTATEENTRY._options = None
+ _INVOICE_AMPINVOICESTATEENTRY._serialized_options = b"8\001"
+ _INVOICE.fields_by_name["settled"]._options = None
+ _INVOICE.fields_by_name["settled"]._serialized_options = b"\030\001"
+ _INVOICE.fields_by_name["amt_paid"]._options = None
+ _INVOICE.fields_by_name["amt_paid"]._serialized_options = b"\030\001"
+ _INVOICEHTLC_CUSTOMRECORDSENTRY._options = None
+ _INVOICEHTLC_CUSTOMRECORDSENTRY._serialized_options = b"8\001"
+ _INVOICEHTLC.fields_by_name["chan_id"]._options = None
+ _INVOICEHTLC.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _PAYMENTHASH.fields_by_name["r_hash_str"]._options = None
+ _PAYMENTHASH.fields_by_name["r_hash_str"]._serialized_options = b"\030\001"
+ _PAYMENT.fields_by_name["value"]._options = None
+ _PAYMENT.fields_by_name["value"]._serialized_options = b"\030\001"
+ _PAYMENT.fields_by_name["creation_date"]._options = None
+ _PAYMENT.fields_by_name["creation_date"]._serialized_options = b"\030\001"
+ _PAYMENT.fields_by_name["fee"]._options = None
+ _PAYMENT.fields_by_name["fee"]._serialized_options = b"\030\001"
+ _PAYREQ_FEATURESENTRY._options = None
+ _PAYREQ_FEATURESENTRY._serialized_options = b"8\001"
+ _CHANNELFEEREPORT.fields_by_name["chan_id"]._options = None
+ _CHANNELFEEREPORT.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _FORWARDINGEVENT.fields_by_name["timestamp"]._options = None
+ _FORWARDINGEVENT.fields_by_name["timestamp"]._serialized_options = b"\030\001"
+ _FORWARDINGEVENT.fields_by_name["chan_id_in"]._options = None
+ _FORWARDINGEVENT.fields_by_name["chan_id_in"]._serialized_options = b"0\001"
+ _FORWARDINGEVENT.fields_by_name["chan_id_out"]._options = None
+ _FORWARDINGEVENT.fields_by_name["chan_id_out"]._serialized_options = b"0\001"
+ _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._options = None
+ _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._serialized_options = b"8\001"
+ _CHANNELUPDATE.fields_by_name["chan_id"]._options = None
+ _CHANNELUPDATE.fields_by_name["chan_id"]._serialized_options = b"0\001"
+ _LIGHTNING.methods_by_name["SendPayment"]._options = None
+ _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 = 27318
+ _OUTPUTSCRIPTTYPE._serialized_end = 27613
+ _ADDRESSTYPE._serialized_start = 27616
+ _ADDRESSTYPE._serialized_end = 27788
+ _COMMITMENTTYPE._serialized_start = 27790
+ _COMMITMENTTYPE._serialized_end = 27910
+ _INITIATOR._serialized_start = 27912
+ _INITIATOR._serialized_end = 28009
+ _RESOLUTIONTYPE._serialized_start = 28011
+ _RESOLUTIONTYPE._serialized_end = 28107
+ _RESOLUTIONOUTCOME._serialized_start = 28109
+ _RESOLUTIONOUTCOME._serialized_end = 28222
+ _NODEMETRICTYPE._serialized_start = 28224
+ _NODEMETRICTYPE._serialized_end = 28281
+ _INVOICEHTLCSTATE._serialized_start = 28283
+ _INVOICEHTLCSTATE._serialized_end = 28342
+ _PAYMENTFAILUREREASON._serialized_start = 28345
+ _PAYMENTFAILUREREASON._serialized_end = 28562
+ _FEATUREBIT._serialized_start = 28565
+ _FEATUREBIT._serialized_end = 29156
+ _UPDATEFAILURE._serialized_start = 29159
+ _UPDATEFAILURE._serialized_end = 29331
+ _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 = 2476
+ _CHANNELPOINT._serialized_start = 2478
+ _CHANNELPOINT._serialized_end = 2588
+ _OUTPOINT._serialized_start = 2590
+ _OUTPOINT._serialized_end = 2660
+ _PREVIOUSOUTPOINT._serialized_start = 2662
+ _PREVIOUSOUTPOINT._serialized_end = 2721
+ _LIGHTNINGADDRESS._serialized_start = 2723
+ _LIGHTNINGADDRESS._serialized_end = 2771
+ _ESTIMATEFEEREQUEST._serialized_start = 2774
+ _ESTIMATEFEEREQUEST._serialized_end = 2981
+ _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._serialized_start = 2930
+ _ESTIMATEFEEREQUEST_ADDRTOAMOUNTENTRY._serialized_end = 2981
+ _ESTIMATEFEERESPONSE._serialized_start = 2983
+ _ESTIMATEFEERESPONSE._serialized_end = 3078
+ _SENDMANYREQUEST._serialized_start = 3081
+ _SENDMANYREQUEST._serialized_end = 3346
+ _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._serialized_start = 2930
+ _SENDMANYREQUEST_ADDRTOAMOUNTENTRY._serialized_end = 2981
+ _SENDMANYRESPONSE._serialized_start = 3348
+ _SENDMANYRESPONSE._serialized_end = 3380
+ _SENDCOINSREQUEST._serialized_start = 3383
+ _SENDCOINSREQUEST._serialized_end = 3580
+ _SENDCOINSRESPONSE._serialized_start = 3582
+ _SENDCOINSRESPONSE._serialized_end = 3615
+ _LISTUNSPENTREQUEST._serialized_start = 3617
+ _LISTUNSPENTREQUEST._serialized_end = 3692
+ _LISTUNSPENTRESPONSE._serialized_start = 3694
+ _LISTUNSPENTRESPONSE._serialized_end = 3743
+ _NEWADDRESSREQUEST._serialized_start = 3745
+ _NEWADDRESSREQUEST._serialized_end = 3815
+ _NEWADDRESSRESPONSE._serialized_start = 3817
+ _NEWADDRESSRESPONSE._serialized_end = 3854
+ _SIGNMESSAGEREQUEST._serialized_start = 3856
+ _SIGNMESSAGEREQUEST._serialized_end = 3910
+ _SIGNMESSAGERESPONSE._serialized_start = 3912
+ _SIGNMESSAGERESPONSE._serialized_end = 3952
+ _VERIFYMESSAGEREQUEST._serialized_start = 3954
+ _VERIFYMESSAGEREQUEST._serialized_end = 4008
+ _VERIFYMESSAGERESPONSE._serialized_start = 4010
+ _VERIFYMESSAGERESPONSE._serialized_end = 4064
+ _CONNECTPEERREQUEST._serialized_start = 4066
+ _CONNECTPEERREQUEST._serialized_end = 4156
+ _CONNECTPEERRESPONSE._serialized_start = 4158
+ _CONNECTPEERRESPONSE._serialized_end = 4179
+ _DISCONNECTPEERREQUEST._serialized_start = 4181
+ _DISCONNECTPEERREQUEST._serialized_end = 4221
+ _DISCONNECTPEERRESPONSE._serialized_start = 4223
+ _DISCONNECTPEERRESPONSE._serialized_end = 4247
+ _HTLC._serialized_start = 4250
+ _HTLC._serialized_end = 4415
+ _CHANNELCONSTRAINTS._serialized_start = 4418
+ _CHANNELCONSTRAINTS._serialized_end = 4588
+ _CHANNEL._serialized_start = 4591
+ _CHANNEL._serialized_end = 5407
+ _LISTCHANNELSREQUEST._serialized_start = 5409
+ _LISTCHANNELSREQUEST._serialized_end = 5531
+ _LISTCHANNELSRESPONSE._serialized_start = 5533
+ _LISTCHANNELSRESPONSE._serialized_end = 5589
+ _CHANNELCLOSESUMMARY._serialized_start = 5592
+ _CHANNELCLOSESUMMARY._serialized_end = 6145
+ _CHANNELCLOSESUMMARY_CLOSURETYPE._serialized_start = 6007
+ _CHANNELCLOSESUMMARY_CLOSURETYPE._serialized_end = 6145
+ _RESOLUTION._serialized_start = 6148
+ _RESOLUTION._serialized_end = 6326
+ _CLOSEDCHANNELSREQUEST._serialized_start = 6329
+ _CLOSEDCHANNELSREQUEST._serialized_end = 6477
+ _CLOSEDCHANNELSRESPONSE._serialized_start = 6479
+ _CLOSEDCHANNELSRESPONSE._serialized_end = 6549
+ _PEER._serialized_start = 6552
+ _PEER._serialized_end = 7047
+ _PEER_FEATURESENTRY._serialized_start = 6902
+ _PEER_FEATURESENTRY._serialized_end = 6965
+ _PEER_SYNCTYPE._serialized_start = 6967
+ _PEER_SYNCTYPE._serialized_end = 7047
+ _TIMESTAMPEDERROR._serialized_start = 7049
+ _TIMESTAMPEDERROR._serialized_end = 7101
+ _LISTPEERSREQUEST._serialized_start = 7103
+ _LISTPEERSREQUEST._serialized_end = 7143
+ _LISTPEERSRESPONSE._serialized_start = 7145
+ _LISTPEERSRESPONSE._serialized_end = 7192
+ _PEEREVENTSUBSCRIPTION._serialized_start = 7194
+ _PEEREVENTSUBSCRIPTION._serialized_end = 7217
+ _PEEREVENT._serialized_start = 7219
+ _PEEREVENT._serialized_end = 7337
+ _PEEREVENT_EVENTTYPE._serialized_start = 7291
+ _PEEREVENT_EVENTTYPE._serialized_end = 7337
+ _GETINFOREQUEST._serialized_start = 7339
+ _GETINFOREQUEST._serialized_end = 7355
+ _GETINFORESPONSE._serialized_start = 7358
+ _GETINFORESPONSE._serialized_end = 7926
+ _GETINFORESPONSE_FEATURESENTRY._serialized_start = 6902
+ _GETINFORESPONSE_FEATURESENTRY._serialized_end = 6965
+ _GETRECOVERYINFOREQUEST._serialized_start = 7928
+ _GETRECOVERYINFOREQUEST._serialized_end = 7952
+ _GETRECOVERYINFORESPONSE._serialized_start = 7954
+ _GETRECOVERYINFORESPONSE._serialized_end = 8047
+ _CHAIN._serialized_start = 8049
+ _CHAIN._serialized_end = 8088
+ _CONFIRMATIONUPDATE._serialized_start = 8090
+ _CONFIRMATIONUPDATE._serialized_end = 8175
+ _CHANNELOPENUPDATE._serialized_start = 8177
+ _CHANNELOPENUPDATE._serialized_end = 8240
+ _CHANNELCLOSEUPDATE._serialized_start = 8242
+ _CHANNELCLOSEUPDATE._serialized_end = 8301
+ _CLOSECHANNELREQUEST._serialized_start = 8304
+ _CLOSECHANNELREQUEST._serialized_end = 8480
+ _CLOSESTATUSUPDATE._serialized_start = 8482
+ _CLOSESTATUSUPDATE._serialized_end = 8607
+ _PENDINGUPDATE._serialized_start = 8609
+ _PENDINGUPDATE._serialized_end = 8660
+ _READYFORPSBTFUNDING._serialized_start = 8662
+ _READYFORPSBTFUNDING._serialized_end = 8746
+ _BATCHOPENCHANNELREQUEST._serialized_start = 8749
+ _BATCHOPENCHANNELREQUEST._serialized_end = 8922
+ _BATCHOPENCHANNEL._serialized_start = 8925
+ _BATCHOPENCHANNEL._serialized_end = 9174
+ _BATCHOPENCHANNELRESPONSE._serialized_start = 9176
+ _BATCHOPENCHANNELRESPONSE._serialized_end = 9250
+ _OPENCHANNELREQUEST._serialized_start = 9253
+ _OPENCHANNELREQUEST._serialized_end = 9798
+ _OPENSTATUSUPDATE._serialized_start = 9801
+ _OPENSTATUSUPDATE._serialized_end = 9996
+ _KEYLOCATOR._serialized_start = 9998
+ _KEYLOCATOR._serialized_end = 10049
+ _KEYDESCRIPTOR._serialized_start = 10051
+ _KEYDESCRIPTOR._serialized_end = 10125
+ _CHANPOINTSHIM._serialized_start = 10128
+ _CHANPOINTSHIM._serialized_end = 10304
+ _PSBTSHIM._serialized_start = 10306
+ _PSBTSHIM._serialized_end = 10380
+ _FUNDINGSHIM._serialized_start = 10382
+ _FUNDINGSHIM._serialized_end = 10490
+ _FUNDINGSHIMCANCEL._serialized_start = 10492
+ _FUNDINGSHIMCANCEL._serialized_end = 10536
+ _FUNDINGPSBTVERIFY._serialized_start = 10538
+ _FUNDINGPSBTVERIFY._serialized_end = 10626
+ _FUNDINGPSBTFINALIZE._serialized_start = 10628
+ _FUNDINGPSBTFINALIZE._serialized_end = 10717
+ _FUNDINGTRANSITIONMSG._serialized_start = 10720
+ _FUNDINGTRANSITIONMSG._serialized_end = 10949
+ _FUNDINGSTATESTEPRESP._serialized_start = 10951
+ _FUNDINGSTATESTEPRESP._serialized_end = 10973
+ _PENDINGHTLC._serialized_start = 10976
+ _PENDINGHTLC._serialized_end = 11110
+ _PENDINGCHANNELSREQUEST._serialized_start = 11112
+ _PENDINGCHANNELSREQUEST._serialized_end = 11136
+ _PENDINGCHANNELSRESPONSE._serialized_start = 11139
+ _PENDINGCHANNELSRESPONSE._serialized_end = 12922
+ _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL._serialized_start = 11537
+ _PENDINGCHANNELSRESPONSE_PENDINGCHANNEL._serialized_end = 11893
+ _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL._serialized_start = 11896
+ _PENDINGCHANNELSRESPONSE_PENDINGOPENCHANNEL._serialized_end = 12049
+ _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL._serialized_start = 12052
+ _PENDINGCHANNELSRESPONSE_WAITINGCLOSECHANNEL._serialized_end = 12247
+ _PENDINGCHANNELSRESPONSE_COMMITMENTS._serialized_start = 12250
+ _PENDINGCHANNELSRESPONSE_COMMITMENTS._serialized_end = 12433
+ _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL._serialized_start = 12435
+ _PENDINGCHANNELSRESPONSE_CLOSEDCHANNEL._serialized_end = 12536
+ _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL._serialized_start = 12539
+ _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL._serialized_end = 12922
+ _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE._serialized_start = 12873
+ _PENDINGCHANNELSRESPONSE_FORCECLOSEDCHANNEL_ANCHORSTATE._serialized_end = 12922
+ _CHANNELEVENTSUBSCRIPTION._serialized_start = 12924
+ _CHANNELEVENTSUBSCRIPTION._serialized_end = 12950
+ _CHANNELEVENTUPDATE._serialized_start = 12953
+ _CHANNELEVENTUPDATE._serialized_end = 13484
+ _CHANNELEVENTUPDATE_UPDATETYPE._serialized_start = 13327
+ _CHANNELEVENTUPDATE_UPDATETYPE._serialized_end = 13473
+ _WALLETACCOUNTBALANCE._serialized_start = 13486
+ _WALLETACCOUNTBALANCE._serialized_end = 13564
+ _WALLETBALANCEREQUEST._serialized_start = 13566
+ _WALLETBALANCEREQUEST._serialized_end = 13588
+ _WALLETBALANCERESPONSE._serialized_start = 13591
+ _WALLETBALANCERESPONSE._serialized_end = 13914
+ _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._serialized_start = 13832
+ _WALLETBALANCERESPONSE_ACCOUNTBALANCEENTRY._serialized_end = 13914
+ _AMOUNT._serialized_start = 13916
+ _AMOUNT._serialized_end = 13951
+ _CHANNELBALANCEREQUEST._serialized_start = 13953
+ _CHANNELBALANCEREQUEST._serialized_end = 13976
+ _CHANNELBALANCERESPONSE._serialized_start = 13979
+ _CHANNELBALANCERESPONSE._serialized_end = 14335
+ _QUERYROUTESREQUEST._serialized_start = 14338
+ _QUERYROUTESREQUEST._serialized_end = 14949
+ _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._serialized_start = 1558
+ _QUERYROUTESREQUEST_DESTCUSTOMRECORDSENTRY._serialized_end = 1614
+ _NODEPAIR._serialized_start = 14951
+ _NODEPAIR._serialized_end = 14987
+ _EDGELOCATOR._serialized_start = 14989
+ _EDGELOCATOR._serialized_end = 15053
+ _QUERYROUTESRESPONSE._serialized_start = 15055
+ _QUERYROUTESRESPONSE._serialized_end = 15128
+ _HOP._serialized_start = 15131
+ _HOP._serialized_end = 15537
+ _HOP_CUSTOMRECORDSENTRY._serialized_start = 15485
+ _HOP_CUSTOMRECORDSENTRY._serialized_end = 15537
+ _MPPRECORD._serialized_start = 15539
+ _MPPRECORD._serialized_end = 15596
+ _AMPRECORD._serialized_start = 15598
+ _AMPRECORD._serialized_end = 15666
+ _ROUTE._serialized_start = 15669
+ _ROUTE._serialized_end = 15823
+ _NODEINFOREQUEST._serialized_start = 15825
+ _NODEINFOREQUEST._serialized_end = 15885
+ _NODEINFO._serialized_start = 15888
+ _NODEINFO._serialized_end = 16018
+ _LIGHTNINGNODE._serialized_start = 16021
+ _LIGHTNINGNODE._serialized_end = 16262
+ _LIGHTNINGNODE_FEATURESENTRY._serialized_start = 6902
+ _LIGHTNINGNODE_FEATURESENTRY._serialized_end = 6965
+ _NODEADDRESS._serialized_start = 16264
+ _NODEADDRESS._serialized_end = 16308
+ _ROUTINGPOLICY._serialized_start = 16311
+ _ROUTINGPOLICY._serialized_end = 16483
+ _CHANNELEDGE._serialized_start = 16486
+ _CHANNELEDGE._serialized_end = 16712
+ _CHANNELGRAPHREQUEST._serialized_start = 16714
+ _CHANNELGRAPHREQUEST._serialized_end = 16764
+ _CHANNELGRAPH._serialized_start = 16766
+ _CHANNELGRAPH._serialized_end = 16852
+ _NODEMETRICSREQUEST._serialized_start = 16854
+ _NODEMETRICSREQUEST._serialized_end = 16912
+ _NODEMETRICSRESPONSE._serialized_start = 16915
+ _NODEMETRICSRESPONSE._serialized_end = 17105
+ _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._serialized_start = 17025
+ _NODEMETRICSRESPONSE_BETWEENNESSCENTRALITYENTRY._serialized_end = 17105
+ _FLOATMETRIC._serialized_start = 17107
+ _FLOATMETRIC._serialized_end = 17161
+ _CHANINFOREQUEST._serialized_start = 17163
+ _CHANINFOREQUEST._serialized_end = 17201
+ _NETWORKINFOREQUEST._serialized_start = 17203
+ _NETWORKINFOREQUEST._serialized_end = 17223
+ _NETWORKINFO._serialized_start = 17226
+ _NETWORKINFO._serialized_end = 17521
+ _STOPREQUEST._serialized_start = 17523
+ _STOPREQUEST._serialized_end = 17536
+ _STOPRESPONSE._serialized_start = 17538
+ _STOPRESPONSE._serialized_end = 17552
+ _GRAPHTOPOLOGYSUBSCRIPTION._serialized_start = 17554
+ _GRAPHTOPOLOGYSUBSCRIPTION._serialized_end = 17581
+ _GRAPHTOPOLOGYUPDATE._serialized_start = 17584
+ _GRAPHTOPOLOGYUPDATE._serialized_end = 17747
+ _NODEUPDATE._serialized_start = 17750
+ _NODEUPDATE._serialized_end = 18026
+ _NODEUPDATE_FEATURESENTRY._serialized_start = 6902
+ _NODEUPDATE_FEATURESENTRY._serialized_end = 6965
+ _CHANNELEDGEUPDATE._serialized_start = 18029
+ _CHANNELEDGEUPDATE._serialized_end = 18225
+ _CLOSEDCHANNELUPDATE._serialized_start = 18227
+ _CLOSEDCHANNELUPDATE._serialized_end = 18351
+ _HOPHINT._serialized_start = 18354
+ _HOPHINT._serialized_end = 18488
+ _SETID._serialized_start = 18490
+ _SETID._serialized_end = 18513
+ _ROUTEHINT._serialized_start = 18515
+ _ROUTEHINT._serialized_end = 18561
+ _AMPINVOICESTATE._serialized_start = 18563
+ _AMPINVOICESTATE._serialized_end = 18686
+ _INVOICE._serialized_start = 18689
+ _INVOICE._serialized_end = 19590
+ _INVOICE_FEATURESENTRY._serialized_start = 6902
+ _INVOICE_FEATURESENTRY._serialized_end = 6965
+ _INVOICE_AMPINVOICESTATEENTRY._serialized_start = 19439
+ _INVOICE_AMPINVOICESTATEENTRY._serialized_end = 19517
+ _INVOICE_INVOICESTATE._serialized_start = 19519
+ _INVOICE_INVOICESTATE._serialized_end = 19584
+ _INVOICEHTLC._serialized_start = 19593
+ _INVOICEHTLC._serialized_end = 19964
+ _INVOICEHTLC_CUSTOMRECORDSENTRY._serialized_start = 15485
+ _INVOICEHTLC_CUSTOMRECORDSENTRY._serialized_end = 15537
+ _AMP._serialized_start = 19966
+ _AMP._serialized_end = 20060
+ _ADDINVOICERESPONSE._serialized_start = 20062
+ _ADDINVOICERESPONSE._serialized_end = 20164
+ _PAYMENTHASH._serialized_start = 20166
+ _PAYMENTHASH._serialized_end = 20219
+ _LISTINVOICEREQUEST._serialized_start = 20221
+ _LISTINVOICEREQUEST._serialized_end = 20329
+ _LISTINVOICERESPONSE._serialized_start = 20331
+ _LISTINVOICERESPONSE._serialized_end = 20441
+ _INVOICESUBSCRIPTION._serialized_start = 20443
+ _INVOICESUBSCRIPTION._serialized_end = 20505
+ _PAYMENT._serialized_start = 20508
+ _PAYMENT._serialized_end = 20988
+ _PAYMENT_PAYMENTSTATUS._serialized_start = 20912
+ _PAYMENT_PAYMENTSTATUS._serialized_end = 20982
+ _HTLCATTEMPT._serialized_start = 20991
+ _HTLCATTEMPT._serialized_end = 21257
+ _HTLCATTEMPT_HTLCSTATUS._serialized_start = 21203
+ _HTLCATTEMPT_HTLCSTATUS._serialized_end = 21257
+ _LISTPAYMENTSREQUEST._serialized_start = 21260
+ _LISTPAYMENTSREQUEST._serialized_end = 21401
+ _LISTPAYMENTSRESPONSE._serialized_start = 21404
+ _LISTPAYMENTSRESPONSE._serialized_end = 21543
+ _DELETEPAYMENTREQUEST._serialized_start = 21545
+ _DELETEPAYMENTREQUEST._serialized_end = 21616
+ _DELETEALLPAYMENTSREQUEST._serialized_start = 21618
+ _DELETEALLPAYMENTSREQUEST._serialized_end = 21701
+ _DELETEPAYMENTRESPONSE._serialized_start = 21703
+ _DELETEPAYMENTRESPONSE._serialized_end = 21726
+ _DELETEALLPAYMENTSRESPONSE._serialized_start = 21728
+ _DELETEALLPAYMENTSRESPONSE._serialized_end = 21755
+ _ABANDONCHANNELREQUEST._serialized_start = 21758
+ _ABANDONCHANNELREQUEST._serialized_end = 21892
+ _ABANDONCHANNELRESPONSE._serialized_start = 21894
+ _ABANDONCHANNELRESPONSE._serialized_end = 21918
+ _DEBUGLEVELREQUEST._serialized_start = 21920
+ _DEBUGLEVELREQUEST._serialized_end = 21973
+ _DEBUGLEVELRESPONSE._serialized_start = 21975
+ _DEBUGLEVELRESPONSE._serialized_end = 22016
+ _PAYREQSTRING._serialized_start = 22018
+ _PAYREQSTRING._serialized_end = 22049
+ _PAYREQ._serialized_start = 22052
+ _PAYREQ._serialized_end = 22442
+ _PAYREQ_FEATURESENTRY._serialized_start = 6902
+ _PAYREQ_FEATURESENTRY._serialized_end = 6965
+ _FEATURE._serialized_start = 22444
+ _FEATURE._serialized_end = 22506
+ _FEEREPORTREQUEST._serialized_start = 22508
+ _FEEREPORTREQUEST._serialized_end = 22526
+ _CHANNELFEEREPORT._serialized_start = 22528
+ _CHANNELFEEREPORT._serialized_end = 22652
+ _FEEREPORTRESPONSE._serialized_start = 22655
+ _FEEREPORTRESPONSE._serialized_end = 22787
+ _POLICYUPDATEREQUEST._serialized_start = 22790
+ _POLICYUPDATEREQUEST._serialized_end = 23048
+ _FAILEDUPDATE._serialized_start = 23050
+ _FAILEDUPDATE._serialized_end = 23159
+ _POLICYUPDATERESPONSE._serialized_start = 23161
+ _POLICYUPDATERESPONSE._serialized_end = 23228
+ _FORWARDINGHISTORYREQUEST._serialized_start = 23230
+ _FORWARDINGHISTORYREQUEST._serialized_end = 23340
+ _FORWARDINGEVENT._serialized_start = 23343
+ _FORWARDINGEVENT._serialized_end = 23561
+ _FORWARDINGHISTORYRESPONSE._serialized_start = 23563
+ _FORWARDINGHISTORYRESPONSE._serialized_end = 23668
+ _EXPORTCHANNELBACKUPREQUEST._serialized_start = 23670
+ _EXPORTCHANNELBACKUPREQUEST._serialized_end = 23739
+ _CHANNELBACKUP._serialized_start = 23741
+ _CHANNELBACKUP._serialized_end = 23818
+ _MULTICHANBACKUP._serialized_start = 23820
+ _MULTICHANBACKUP._serialized_end = 23906
+ _CHANBACKUPEXPORTREQUEST._serialized_start = 23908
+ _CHANBACKUPEXPORTREQUEST._serialized_end = 23933
+ _CHANBACKUPSNAPSHOT._serialized_start = 23935
+ _CHANBACKUPSNAPSHOT._serialized_end = 24058
+ _CHANNELBACKUPS._serialized_start = 24060
+ _CHANNELBACKUPS._serialized_end = 24120
+ _RESTORECHANBACKUPREQUEST._serialized_start = 24122
+ _RESTORECHANBACKUPREQUEST._serialized_end = 24234
+ _RESTOREBACKUPRESPONSE._serialized_start = 24236
+ _RESTOREBACKUPRESPONSE._serialized_end = 24259
+ _CHANNELBACKUPSUBSCRIPTION._serialized_start = 24261
+ _CHANNELBACKUPSUBSCRIPTION._serialized_end = 24288
+ _VERIFYCHANBACKUPRESPONSE._serialized_start = 24290
+ _VERIFYCHANBACKUPRESPONSE._serialized_end = 24316
+ _MACAROONPERMISSION._serialized_start = 24318
+ _MACAROONPERMISSION._serialized_end = 24370
+ _BAKEMACAROONREQUEST._serialized_start = 24372
+ _BAKEMACAROONREQUEST._serialized_end = 24498
+ _BAKEMACAROONRESPONSE._serialized_start = 24500
+ _BAKEMACAROONRESPONSE._serialized_end = 24540
+ _LISTMACAROONIDSREQUEST._serialized_start = 24542
+ _LISTMACAROONIDSREQUEST._serialized_end = 24566
+ _LISTMACAROONIDSRESPONSE._serialized_start = 24568
+ _LISTMACAROONIDSRESPONSE._serialized_end = 24615
+ _DELETEMACAROONIDREQUEST._serialized_start = 24617
+ _DELETEMACAROONIDREQUEST._serialized_end = 24663
+ _DELETEMACAROONIDRESPONSE._serialized_start = 24665
+ _DELETEMACAROONIDRESPONSE._serialized_end = 24708
+ _MACAROONPERMISSIONLIST._serialized_start = 24710
+ _MACAROONPERMISSIONLIST._serialized_end = 24782
+ _LISTPERMISSIONSREQUEST._serialized_start = 24784
+ _LISTPERMISSIONSREQUEST._serialized_end = 24808
+ _LISTPERMISSIONSRESPONSE._serialized_start = 24811
+ _LISTPERMISSIONSRESPONSE._serialized_end = 25008
+ _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._serialized_start = 24921
+ _LISTPERMISSIONSRESPONSE_METHODPERMISSIONSENTRY._serialized_end = 25008
+ _FAILURE._serialized_start = 25011
+ _FAILURE._serialized_end = 25992
+ _FAILURE_FAILURECODE._serialized_start = 25235
+ _FAILURE_FAILURECODE._serialized_end = 25986
+ _CHANNELUPDATE._serialized_start = 25995
+ _CHANNELUPDATE._serialized_end = 26277
+ _MACAROONID._serialized_start = 26279
+ _MACAROONID._serialized_end = 26349
+ _OP._serialized_start = 26351
+ _OP._serialized_end = 26388
+ _CHECKMACPERMREQUEST._serialized_start = 26390
+ _CHECKMACPERMREQUEST._serialized_end = 26497
+ _CHECKMACPERMRESPONSE._serialized_start = 26499
+ _CHECKMACPERMRESPONSE._serialized_end = 26536
+ _RPCMIDDLEWAREREQUEST._serialized_start = 26539
+ _RPCMIDDLEWAREREQUEST._serialized_end = 26789
+ _STREAMAUTH._serialized_start = 26791
+ _STREAMAUTH._serialized_end = 26828
+ _RPCMESSAGE._serialized_start = 26830
+ _RPCMESSAGE._serialized_end = 26944
+ _RPCMIDDLEWARERESPONSE._serialized_start = 26947
+ _RPCMIDDLEWARERESPONSE._serialized_end = 27109
+ _MIDDLEWAREREGISTRATION._serialized_start = 27111
+ _MIDDLEWAREREGISTRATION._serialized_end = 27221
+ _INTERCEPTFEEDBACK._serialized_start = 27223
+ _INTERCEPTFEEDBACK._serialized_end = 27315
+ _LIGHTNING._serialized_start = 29334
+ _LIGHTNING._serialized_end = 34143
# @@protoc_insertion_point(module_scope)
diff --git a/lnbits/wallets/lnd_grpc_files/router_pb2.py b/lnbits/wallets/lnd_grpc_files/router_pb2.py
new file mode 100644
index 000000000..4237556bc
--- /dev/null
+++ b/lnbits/wallets/lnd_grpc_files/router_pb2.py
@@ -0,0 +1,665 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: router.proto
+"""Generated protocol buffer code."""
+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
+from google.protobuf.internal import enum_type_wrapper
+
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+import lnbits.wallets.lnd_grpc_files.lightning_pb2 as lightning__pb2
+
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
+ b'\n\x0crouter.proto\x12\trouterrpc\x1a\x0flightning.proto"\xb7\x05\n\x12SendPaymentRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x0b\n\x03\x61mt\x18\x02 \x01(\x03\x12\x10\n\x08\x61mt_msat\x18\x0c \x01(\x03\x12\x14\n\x0cpayment_hash\x18\x03 \x01(\x0c\x12\x18\n\x10\x66inal_cltv_delta\x18\x04 \x01(\x05\x12\x14\n\x0cpayment_addr\x18\x14 \x01(\x0c\x12\x17\n\x0fpayment_request\x18\x05 \x01(\t\x12\x17\n\x0ftimeout_seconds\x18\x06 \x01(\x05\x12\x15\n\rfee_limit_sat\x18\x07 \x01(\x03\x12\x16\n\x0e\x66\x65\x65_limit_msat\x18\r \x01(\x03\x12\x1e\n\x10outgoing_chan_id\x18\x08 \x01(\x04\x42\x04\x18\x01\x30\x01\x12\x19\n\x11outgoing_chan_ids\x18\x13 \x03(\x04\x12\x17\n\x0flast_hop_pubkey\x18\x0e \x01(\x0c\x12\x12\n\ncltv_limit\x18\t \x01(\x05\x12%\n\x0broute_hints\x18\n \x03(\x0b\x32\x10.lnrpc.RouteHint\x12Q\n\x13\x64\x65st_custom_records\x18\x0b \x03(\x0b\x32\x34.routerrpc.SendPaymentRequest.DestCustomRecordsEntry\x12\x1a\n\x12\x61llow_self_payment\x18\x0f \x01(\x08\x12(\n\rdest_features\x18\x10 \x03(\x0e\x32\x11.lnrpc.FeatureBit\x12\x11\n\tmax_parts\x18\x11 \x01(\r\x12\x1b\n\x13no_inflight_updates\x18\x12 \x01(\x08\x12\x1b\n\x13max_shard_size_msat\x18\x15 \x01(\x04\x12\x0b\n\x03\x61mp\x18\x16 \x01(\x08\x12\x11\n\ttime_pref\x18\x17 \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\x01"H\n\x13TrackPaymentRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1b\n\x13no_inflight_updates\x18\x02 \x01(\x08"0\n\x0fRouteFeeRequest\x12\x0c\n\x04\x64\x65st\x18\x01 \x01(\x0c\x12\x0f\n\x07\x61mt_sat\x18\x02 \x01(\x03"E\n\x10RouteFeeResponse\x12\x18\n\x10routing_fee_msat\x18\x01 \x01(\x03\x12\x17\n\x0ftime_lock_delay\x18\x02 \x01(\x03"^\n\x12SendToRouteRequest\x12\x14\n\x0cpayment_hash\x18\x01 \x01(\x0c\x12\x1b\n\x05route\x18\x02 \x01(\x0b\x32\x0c.lnrpc.Route\x12\x15\n\rskip_temp_err\x18\x03 \x01(\x08"H\n\x13SendToRouteResponse\x12\x10\n\x08preimage\x18\x01 \x01(\x0c\x12\x1f\n\x07\x66\x61ilure\x18\x02 \x01(\x0b\x32\x0e.lnrpc.Failure"\x1c\n\x1aResetMissionControlRequest"\x1d\n\x1bResetMissionControlResponse"\x1c\n\x1aQueryMissionControlRequest"J\n\x1bQueryMissionControlResponse\x12%\n\x05pairs\x18\x02 \x03(\x0b\x32\x16.routerrpc.PairHistoryJ\x04\x08\x01\x10\x02"T\n\x1cXImportMissionControlRequest\x12%\n\x05pairs\x18\x01 \x03(\x0b\x32\x16.routerrpc.PairHistory\x12\r\n\x05\x66orce\x18\x02 \x01(\x08"\x1f\n\x1dXImportMissionControlResponse"o\n\x0bPairHistory\x12\x11\n\tnode_from\x18\x01 \x01(\x0c\x12\x0f\n\x07node_to\x18\x02 \x01(\x0c\x12$\n\x07history\x18\x07 \x01(\x0b\x32\x13.routerrpc.PairDataJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05J\x04\x08\x05\x10\x06J\x04\x08\x06\x10\x07"\x99\x01\n\x08PairData\x12\x11\n\tfail_time\x18\x01 \x01(\x03\x12\x14\n\x0c\x66\x61il_amt_sat\x18\x02 \x01(\x03\x12\x15\n\rfail_amt_msat\x18\x04 \x01(\x03\x12\x14\n\x0csuccess_time\x18\x05 \x01(\x03\x12\x17\n\x0fsuccess_amt_sat\x18\x06 \x01(\x03\x12\x18\n\x10success_amt_msat\x18\x07 \x01(\x03J\x04\x08\x03\x10\x04" \n\x1eGetMissionControlConfigRequest"R\n\x1fGetMissionControlConfigResponse\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.routerrpc.MissionControlConfig"Q\n\x1eSetMissionControlConfigRequest\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.routerrpc.MissionControlConfig"!\n\x1fSetMissionControlConfigResponse"\xa3\x01\n\x14MissionControlConfig\x12\x19\n\x11half_life_seconds\x18\x01 \x01(\x04\x12\x17\n\x0fhop_probability\x18\x02 \x01(\x02\x12\x0e\n\x06weight\x18\x03 \x01(\x02\x12\x1f\n\x17maximum_payment_results\x18\x04 \x01(\r\x12&\n\x1eminimum_failure_relax_interval\x18\x05 \x01(\x04"O\n\x17QueryProbabilityRequest\x12\x11\n\tfrom_node\x18\x01 \x01(\x0c\x12\x0f\n\x07to_node\x18\x02 \x01(\x0c\x12\x10\n\x08\x61mt_msat\x18\x03 \x01(\x03"U\n\x18QueryProbabilityResponse\x12\x13\n\x0bprobability\x18\x01 \x01(\x01\x12$\n\x07history\x18\x02 \x01(\x0b\x32\x13.routerrpc.PairData"\x88\x01\n\x11\x42uildRouteRequest\x12\x10\n\x08\x61mt_msat\x18\x01 \x01(\x03\x12\x18\n\x10\x66inal_cltv_delta\x18\x02 \x01(\x05\x12\x1c\n\x10outgoing_chan_id\x18\x03 \x01(\x04\x42\x02\x30\x01\x12\x13\n\x0bhop_pubkeys\x18\x04 \x03(\x0c\x12\x14\n\x0cpayment_addr\x18\x05 \x01(\x0c"1\n\x12\x42uildRouteResponse\x12\x1b\n\x05route\x18\x01 \x01(\x0b\x32\x0c.lnrpc.Route"\x1c\n\x1aSubscribeHtlcEventsRequest"\xdc\x03\n\tHtlcEvent\x12\x1b\n\x13incoming_channel_id\x18\x01 \x01(\x04\x12\x1b\n\x13outgoing_channel_id\x18\x02 \x01(\x04\x12\x18\n\x10incoming_htlc_id\x18\x03 \x01(\x04\x12\x18\n\x10outgoing_htlc_id\x18\x04 \x01(\x04\x12\x14\n\x0ctimestamp_ns\x18\x05 \x01(\x04\x12\x32\n\nevent_type\x18\x06 \x01(\x0e\x32\x1e.routerrpc.HtlcEvent.EventType\x12\x30\n\rforward_event\x18\x07 \x01(\x0b\x32\x17.routerrpc.ForwardEventH\x00\x12\x39\n\x12\x66orward_fail_event\x18\x08 \x01(\x0b\x32\x1b.routerrpc.ForwardFailEventH\x00\x12.\n\x0csettle_event\x18\t \x01(\x0b\x32\x16.routerrpc.SettleEventH\x00\x12\x33\n\x0flink_fail_event\x18\n \x01(\x0b\x32\x18.routerrpc.LinkFailEventH\x00"<\n\tEventType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04SEND\x10\x01\x12\x0b\n\x07RECEIVE\x10\x02\x12\x0b\n\x07\x46ORWARD\x10\x03\x42\x07\n\x05\x65vent"v\n\x08HtlcInfo\x12\x19\n\x11incoming_timelock\x18\x01 \x01(\r\x12\x19\n\x11outgoing_timelock\x18\x02 \x01(\r\x12\x19\n\x11incoming_amt_msat\x18\x03 \x01(\x04\x12\x19\n\x11outgoing_amt_msat\x18\x04 \x01(\x04"1\n\x0c\x46orwardEvent\x12!\n\x04info\x18\x01 \x01(\x0b\x32\x13.routerrpc.HtlcInfo"\x12\n\x10\x46orwardFailEvent"\x1f\n\x0bSettleEvent\x12\x10\n\x08preimage\x18\x01 \x01(\x0c"\xae\x01\n\rLinkFailEvent\x12!\n\x04info\x18\x01 \x01(\x0b\x32\x13.routerrpc.HtlcInfo\x12\x30\n\x0cwire_failure\x18\x02 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode\x12\x30\n\x0e\x66\x61ilure_detail\x18\x03 \x01(\x0e\x32\x18.routerrpc.FailureDetail\x12\x16\n\x0e\x66\x61ilure_string\x18\x04 \x01(\t"r\n\rPaymentStatus\x12&\n\x05state\x18\x01 \x01(\x0e\x32\x17.routerrpc.PaymentState\x12\x10\n\x08preimage\x18\x02 \x01(\x0c\x12!\n\x05htlcs\x18\x04 \x03(\x0b\x32\x12.lnrpc.HTLCAttemptJ\x04\x08\x03\x10\x04".\n\nCircuitKey\x12\x0f\n\x07\x63han_id\x18\x01 \x01(\x04\x12\x0f\n\x07htlc_id\x18\x02 \x01(\x04"\x97\x03\n\x1b\x46orwardHtlcInterceptRequest\x12\x33\n\x14incoming_circuit_key\x18\x01 \x01(\x0b\x32\x15.routerrpc.CircuitKey\x12\x1c\n\x14incoming_amount_msat\x18\x05 \x01(\x04\x12\x17\n\x0fincoming_expiry\x18\x06 \x01(\r\x12\x14\n\x0cpayment_hash\x18\x02 \x01(\x0c\x12"\n\x1aoutgoing_requested_chan_id\x18\x07 \x01(\x04\x12\x1c\n\x14outgoing_amount_msat\x18\x03 \x01(\x04\x12\x17\n\x0foutgoing_expiry\x18\x04 \x01(\r\x12Q\n\x0e\x63ustom_records\x18\x08 \x03(\x0b\x32\x39.routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry\x12\x12\n\nonion_blob\x18\t \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"\xe5\x01\n\x1c\x46orwardHtlcInterceptResponse\x12\x33\n\x14incoming_circuit_key\x18\x01 \x01(\x0b\x32\x15.routerrpc.CircuitKey\x12\x33\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32#.routerrpc.ResolveHoldForwardAction\x12\x10\n\x08preimage\x18\x03 \x01(\x0c\x12\x17\n\x0f\x66\x61ilure_message\x18\x04 \x01(\x0c\x12\x30\n\x0c\x66\x61ilure_code\x18\x05 \x01(\x0e\x32\x1a.lnrpc.Failure.FailureCode"o\n\x17UpdateChanStatusRequest\x12\'\n\nchan_point\x18\x01 \x01(\x0b\x32\x13.lnrpc.ChannelPoint\x12+\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32\x1b.routerrpc.ChanStatusAction"\x1a\n\x18UpdateChanStatusResponse*\x81\x04\n\rFailureDetail\x12\x0b\n\x07UNKNOWN\x10\x00\x12\r\n\tNO_DETAIL\x10\x01\x12\x10\n\x0cONION_DECODE\x10\x02\x12\x15\n\x11LINK_NOT_ELIGIBLE\x10\x03\x12\x14\n\x10ON_CHAIN_TIMEOUT\x10\x04\x12\x14\n\x10HTLC_EXCEEDS_MAX\x10\x05\x12\x18\n\x14INSUFFICIENT_BALANCE\x10\x06\x12\x16\n\x12INCOMPLETE_FORWARD\x10\x07\x12\x13\n\x0fHTLC_ADD_FAILED\x10\x08\x12\x15\n\x11\x46ORWARDS_DISABLED\x10\t\x12\x14\n\x10INVOICE_CANCELED\x10\n\x12\x15\n\x11INVOICE_UNDERPAID\x10\x0b\x12\x1b\n\x17INVOICE_EXPIRY_TOO_SOON\x10\x0c\x12\x14\n\x10INVOICE_NOT_OPEN\x10\r\x12\x17\n\x13MPP_INVOICE_TIMEOUT\x10\x0e\x12\x14\n\x10\x41\x44\x44RESS_MISMATCH\x10\x0f\x12\x16\n\x12SET_TOTAL_MISMATCH\x10\x10\x12\x15\n\x11SET_TOTAL_TOO_LOW\x10\x11\x12\x10\n\x0cSET_OVERPAID\x10\x12\x12\x13\n\x0fUNKNOWN_INVOICE\x10\x13\x12\x13\n\x0fINVALID_KEYSEND\x10\x14\x12\x13\n\x0fMPP_IN_PROGRESS\x10\x15\x12\x12\n\x0e\x43IRCULAR_ROUTE\x10\x16*\xae\x01\n\x0cPaymentState\x12\r\n\tIN_FLIGHT\x10\x00\x12\r\n\tSUCCEEDED\x10\x01\x12\x12\n\x0e\x46\x41ILED_TIMEOUT\x10\x02\x12\x13\n\x0f\x46\x41ILED_NO_ROUTE\x10\x03\x12\x10\n\x0c\x46\x41ILED_ERROR\x10\x04\x12$\n FAILED_INCORRECT_PAYMENT_DETAILS\x10\x05\x12\x1f\n\x1b\x46\x41ILED_INSUFFICIENT_BALANCE\x10\x06*<\n\x18ResolveHoldForwardAction\x12\n\n\x06SETTLE\x10\x00\x12\x08\n\x04\x46\x41IL\x10\x01\x12\n\n\x06RESUME\x10\x02*5\n\x10\x43hanStatusAction\x12\n\n\x06\x45NABLE\x10\x00\x12\x0b\n\x07\x44ISABLE\x10\x01\x12\x08\n\x04\x41UTO\x10\x02\x32\xf1\x0b\n\x06Router\x12@\n\rSendPaymentV2\x12\x1d.routerrpc.SendPaymentRequest\x1a\x0e.lnrpc.Payment0\x01\x12\x42\n\x0eTrackPaymentV2\x12\x1e.routerrpc.TrackPaymentRequest\x1a\x0e.lnrpc.Payment0\x01\x12K\n\x10\x45stimateRouteFee\x12\x1a.routerrpc.RouteFeeRequest\x1a\x1b.routerrpc.RouteFeeResponse\x12Q\n\x0bSendToRoute\x12\x1d.routerrpc.SendToRouteRequest\x1a\x1e.routerrpc.SendToRouteResponse"\x03\x88\x02\x01\x12\x42\n\rSendToRouteV2\x12\x1d.routerrpc.SendToRouteRequest\x1a\x12.lnrpc.HTLCAttempt\x12\x64\n\x13ResetMissionControl\x12%.routerrpc.ResetMissionControlRequest\x1a&.routerrpc.ResetMissionControlResponse\x12\x64\n\x13QueryMissionControl\x12%.routerrpc.QueryMissionControlRequest\x1a&.routerrpc.QueryMissionControlResponse\x12j\n\x15XImportMissionControl\x12\'.routerrpc.XImportMissionControlRequest\x1a(.routerrpc.XImportMissionControlResponse\x12p\n\x17GetMissionControlConfig\x12).routerrpc.GetMissionControlConfigRequest\x1a*.routerrpc.GetMissionControlConfigResponse\x12p\n\x17SetMissionControlConfig\x12).routerrpc.SetMissionControlConfigRequest\x1a*.routerrpc.SetMissionControlConfigResponse\x12[\n\x10QueryProbability\x12".routerrpc.QueryProbabilityRequest\x1a#.routerrpc.QueryProbabilityResponse\x12I\n\nBuildRoute\x12\x1c.routerrpc.BuildRouteRequest\x1a\x1d.routerrpc.BuildRouteResponse\x12T\n\x13SubscribeHtlcEvents\x12%.routerrpc.SubscribeHtlcEventsRequest\x1a\x14.routerrpc.HtlcEvent0\x01\x12M\n\x0bSendPayment\x12\x1d.routerrpc.SendPaymentRequest\x1a\x18.routerrpc.PaymentStatus"\x03\x88\x02\x01\x30\x01\x12O\n\x0cTrackPayment\x12\x1e.routerrpc.TrackPaymentRequest\x1a\x18.routerrpc.PaymentStatus"\x03\x88\x02\x01\x30\x01\x12\x66\n\x0fHtlcInterceptor\x12\'.routerrpc.ForwardHtlcInterceptResponse\x1a&.routerrpc.ForwardHtlcInterceptRequest(\x01\x30\x01\x12[\n\x10UpdateChanStatus\x12".routerrpc.UpdateChanStatusRequest\x1a#.routerrpc.UpdateChanStatusResponseB1Z/github.com/lightningnetwork/lnd/lnrpc/routerrpcb\x06proto3'
+)
+
+_FAILUREDETAIL = DESCRIPTOR.enum_types_by_name["FailureDetail"]
+FailureDetail = enum_type_wrapper.EnumTypeWrapper(_FAILUREDETAIL)
+_PAYMENTSTATE = DESCRIPTOR.enum_types_by_name["PaymentState"]
+PaymentState = enum_type_wrapper.EnumTypeWrapper(_PAYMENTSTATE)
+_RESOLVEHOLDFORWARDACTION = DESCRIPTOR.enum_types_by_name["ResolveHoldForwardAction"]
+ResolveHoldForwardAction = enum_type_wrapper.EnumTypeWrapper(_RESOLVEHOLDFORWARDACTION)
+_CHANSTATUSACTION = DESCRIPTOR.enum_types_by_name["ChanStatusAction"]
+ChanStatusAction = enum_type_wrapper.EnumTypeWrapper(_CHANSTATUSACTION)
+UNKNOWN = 0
+NO_DETAIL = 1
+ONION_DECODE = 2
+LINK_NOT_ELIGIBLE = 3
+ON_CHAIN_TIMEOUT = 4
+HTLC_EXCEEDS_MAX = 5
+INSUFFICIENT_BALANCE = 6
+INCOMPLETE_FORWARD = 7
+HTLC_ADD_FAILED = 8
+FORWARDS_DISABLED = 9
+INVOICE_CANCELED = 10
+INVOICE_UNDERPAID = 11
+INVOICE_EXPIRY_TOO_SOON = 12
+INVOICE_NOT_OPEN = 13
+MPP_INVOICE_TIMEOUT = 14
+ADDRESS_MISMATCH = 15
+SET_TOTAL_MISMATCH = 16
+SET_TOTAL_TOO_LOW = 17
+SET_OVERPAID = 18
+UNKNOWN_INVOICE = 19
+INVALID_KEYSEND = 20
+MPP_IN_PROGRESS = 21
+CIRCULAR_ROUTE = 22
+IN_FLIGHT = 0
+SUCCEEDED = 1
+FAILED_TIMEOUT = 2
+FAILED_NO_ROUTE = 3
+FAILED_ERROR = 4
+FAILED_INCORRECT_PAYMENT_DETAILS = 5
+FAILED_INSUFFICIENT_BALANCE = 6
+SETTLE = 0
+FAIL = 1
+RESUME = 2
+ENABLE = 0
+DISABLE = 1
+AUTO = 2
+
+
+_SENDPAYMENTREQUEST = DESCRIPTOR.message_types_by_name["SendPaymentRequest"]
+_SENDPAYMENTREQUEST_DESTCUSTOMRECORDSENTRY = _SENDPAYMENTREQUEST.nested_types_by_name[
+ "DestCustomRecordsEntry"
+]
+_TRACKPAYMENTREQUEST = DESCRIPTOR.message_types_by_name["TrackPaymentRequest"]
+_ROUTEFEEREQUEST = DESCRIPTOR.message_types_by_name["RouteFeeRequest"]
+_ROUTEFEERESPONSE = DESCRIPTOR.message_types_by_name["RouteFeeResponse"]
+_SENDTOROUTEREQUEST = DESCRIPTOR.message_types_by_name["SendToRouteRequest"]
+_SENDTOROUTERESPONSE = DESCRIPTOR.message_types_by_name["SendToRouteResponse"]
+_RESETMISSIONCONTROLREQUEST = DESCRIPTOR.message_types_by_name[
+ "ResetMissionControlRequest"
+]
+_RESETMISSIONCONTROLRESPONSE = DESCRIPTOR.message_types_by_name[
+ "ResetMissionControlResponse"
+]
+_QUERYMISSIONCONTROLREQUEST = DESCRIPTOR.message_types_by_name[
+ "QueryMissionControlRequest"
+]
+_QUERYMISSIONCONTROLRESPONSE = DESCRIPTOR.message_types_by_name[
+ "QueryMissionControlResponse"
+]
+_XIMPORTMISSIONCONTROLREQUEST = DESCRIPTOR.message_types_by_name[
+ "XImportMissionControlRequest"
+]
+_XIMPORTMISSIONCONTROLRESPONSE = DESCRIPTOR.message_types_by_name[
+ "XImportMissionControlResponse"
+]
+_PAIRHISTORY = DESCRIPTOR.message_types_by_name["PairHistory"]
+_PAIRDATA = DESCRIPTOR.message_types_by_name["PairData"]
+_GETMISSIONCONTROLCONFIGREQUEST = DESCRIPTOR.message_types_by_name[
+ "GetMissionControlConfigRequest"
+]
+_GETMISSIONCONTROLCONFIGRESPONSE = DESCRIPTOR.message_types_by_name[
+ "GetMissionControlConfigResponse"
+]
+_SETMISSIONCONTROLCONFIGREQUEST = DESCRIPTOR.message_types_by_name[
+ "SetMissionControlConfigRequest"
+]
+_SETMISSIONCONTROLCONFIGRESPONSE = DESCRIPTOR.message_types_by_name[
+ "SetMissionControlConfigResponse"
+]
+_MISSIONCONTROLCONFIG = DESCRIPTOR.message_types_by_name["MissionControlConfig"]
+_QUERYPROBABILITYREQUEST = DESCRIPTOR.message_types_by_name["QueryProbabilityRequest"]
+_QUERYPROBABILITYRESPONSE = DESCRIPTOR.message_types_by_name["QueryProbabilityResponse"]
+_BUILDROUTEREQUEST = DESCRIPTOR.message_types_by_name["BuildRouteRequest"]
+_BUILDROUTERESPONSE = DESCRIPTOR.message_types_by_name["BuildRouteResponse"]
+_SUBSCRIBEHTLCEVENTSREQUEST = DESCRIPTOR.message_types_by_name[
+ "SubscribeHtlcEventsRequest"
+]
+_HTLCEVENT = DESCRIPTOR.message_types_by_name["HtlcEvent"]
+_HTLCINFO = DESCRIPTOR.message_types_by_name["HtlcInfo"]
+_FORWARDEVENT = DESCRIPTOR.message_types_by_name["ForwardEvent"]
+_FORWARDFAILEVENT = DESCRIPTOR.message_types_by_name["ForwardFailEvent"]
+_SETTLEEVENT = DESCRIPTOR.message_types_by_name["SettleEvent"]
+_LINKFAILEVENT = DESCRIPTOR.message_types_by_name["LinkFailEvent"]
+_PAYMENTSTATUS = DESCRIPTOR.message_types_by_name["PaymentStatus"]
+_CIRCUITKEY = DESCRIPTOR.message_types_by_name["CircuitKey"]
+_FORWARDHTLCINTERCEPTREQUEST = DESCRIPTOR.message_types_by_name[
+ "ForwardHtlcInterceptRequest"
+]
+_FORWARDHTLCINTERCEPTREQUEST_CUSTOMRECORDSENTRY = (
+ _FORWARDHTLCINTERCEPTREQUEST.nested_types_by_name["CustomRecordsEntry"]
+)
+_FORWARDHTLCINTERCEPTRESPONSE = DESCRIPTOR.message_types_by_name[
+ "ForwardHtlcInterceptResponse"
+]
+_UPDATECHANSTATUSREQUEST = DESCRIPTOR.message_types_by_name["UpdateChanStatusRequest"]
+_UPDATECHANSTATUSRESPONSE = DESCRIPTOR.message_types_by_name["UpdateChanStatusResponse"]
+_HTLCEVENT_EVENTTYPE = _HTLCEVENT.enum_types_by_name["EventType"]
+SendPaymentRequest = _reflection.GeneratedProtocolMessageType(
+ "SendPaymentRequest",
+ (_message.Message,),
+ {
+ "DestCustomRecordsEntry": _reflection.GeneratedProtocolMessageType(
+ "DestCustomRecordsEntry",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _SENDPAYMENTREQUEST_DESTCUSTOMRECORDSENTRY,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.SendPaymentRequest.DestCustomRecordsEntry)
+ },
+ ),
+ "DESCRIPTOR": _SENDPAYMENTREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.SendPaymentRequest)
+ },
+)
+_sym_db.RegisterMessage(SendPaymentRequest)
+_sym_db.RegisterMessage(SendPaymentRequest.DestCustomRecordsEntry)
+
+TrackPaymentRequest = _reflection.GeneratedProtocolMessageType(
+ "TrackPaymentRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _TRACKPAYMENTREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.TrackPaymentRequest)
+ },
+)
+_sym_db.RegisterMessage(TrackPaymentRequest)
+
+RouteFeeRequest = _reflection.GeneratedProtocolMessageType(
+ "RouteFeeRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _ROUTEFEEREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.RouteFeeRequest)
+ },
+)
+_sym_db.RegisterMessage(RouteFeeRequest)
+
+RouteFeeResponse = _reflection.GeneratedProtocolMessageType(
+ "RouteFeeResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _ROUTEFEERESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.RouteFeeResponse)
+ },
+)
+_sym_db.RegisterMessage(RouteFeeResponse)
+
+SendToRouteRequest = _reflection.GeneratedProtocolMessageType(
+ "SendToRouteRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _SENDTOROUTEREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.SendToRouteRequest)
+ },
+)
+_sym_db.RegisterMessage(SendToRouteRequest)
+
+SendToRouteResponse = _reflection.GeneratedProtocolMessageType(
+ "SendToRouteResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _SENDTOROUTERESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.SendToRouteResponse)
+ },
+)
+_sym_db.RegisterMessage(SendToRouteResponse)
+
+ResetMissionControlRequest = _reflection.GeneratedProtocolMessageType(
+ "ResetMissionControlRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _RESETMISSIONCONTROLREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.ResetMissionControlRequest)
+ },
+)
+_sym_db.RegisterMessage(ResetMissionControlRequest)
+
+ResetMissionControlResponse = _reflection.GeneratedProtocolMessageType(
+ "ResetMissionControlResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _RESETMISSIONCONTROLRESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.ResetMissionControlResponse)
+ },
+)
+_sym_db.RegisterMessage(ResetMissionControlResponse)
+
+QueryMissionControlRequest = _reflection.GeneratedProtocolMessageType(
+ "QueryMissionControlRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _QUERYMISSIONCONTROLREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.QueryMissionControlRequest)
+ },
+)
+_sym_db.RegisterMessage(QueryMissionControlRequest)
+
+QueryMissionControlResponse = _reflection.GeneratedProtocolMessageType(
+ "QueryMissionControlResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _QUERYMISSIONCONTROLRESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.QueryMissionControlResponse)
+ },
+)
+_sym_db.RegisterMessage(QueryMissionControlResponse)
+
+XImportMissionControlRequest = _reflection.GeneratedProtocolMessageType(
+ "XImportMissionControlRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _XIMPORTMISSIONCONTROLREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.XImportMissionControlRequest)
+ },
+)
+_sym_db.RegisterMessage(XImportMissionControlRequest)
+
+XImportMissionControlResponse = _reflection.GeneratedProtocolMessageType(
+ "XImportMissionControlResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _XIMPORTMISSIONCONTROLRESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.XImportMissionControlResponse)
+ },
+)
+_sym_db.RegisterMessage(XImportMissionControlResponse)
+
+PairHistory = _reflection.GeneratedProtocolMessageType(
+ "PairHistory",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _PAIRHISTORY,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.PairHistory)
+ },
+)
+_sym_db.RegisterMessage(PairHistory)
+
+PairData = _reflection.GeneratedProtocolMessageType(
+ "PairData",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _PAIRDATA,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.PairData)
+ },
+)
+_sym_db.RegisterMessage(PairData)
+
+GetMissionControlConfigRequest = _reflection.GeneratedProtocolMessageType(
+ "GetMissionControlConfigRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _GETMISSIONCONTROLCONFIGREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.GetMissionControlConfigRequest)
+ },
+)
+_sym_db.RegisterMessage(GetMissionControlConfigRequest)
+
+GetMissionControlConfigResponse = _reflection.GeneratedProtocolMessageType(
+ "GetMissionControlConfigResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _GETMISSIONCONTROLCONFIGRESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.GetMissionControlConfigResponse)
+ },
+)
+_sym_db.RegisterMessage(GetMissionControlConfigResponse)
+
+SetMissionControlConfigRequest = _reflection.GeneratedProtocolMessageType(
+ "SetMissionControlConfigRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _SETMISSIONCONTROLCONFIGREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.SetMissionControlConfigRequest)
+ },
+)
+_sym_db.RegisterMessage(SetMissionControlConfigRequest)
+
+SetMissionControlConfigResponse = _reflection.GeneratedProtocolMessageType(
+ "SetMissionControlConfigResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _SETMISSIONCONTROLCONFIGRESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.SetMissionControlConfigResponse)
+ },
+)
+_sym_db.RegisterMessage(SetMissionControlConfigResponse)
+
+MissionControlConfig = _reflection.GeneratedProtocolMessageType(
+ "MissionControlConfig",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _MISSIONCONTROLCONFIG,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.MissionControlConfig)
+ },
+)
+_sym_db.RegisterMessage(MissionControlConfig)
+
+QueryProbabilityRequest = _reflection.GeneratedProtocolMessageType(
+ "QueryProbabilityRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _QUERYPROBABILITYREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.QueryProbabilityRequest)
+ },
+)
+_sym_db.RegisterMessage(QueryProbabilityRequest)
+
+QueryProbabilityResponse = _reflection.GeneratedProtocolMessageType(
+ "QueryProbabilityResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _QUERYPROBABILITYRESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.QueryProbabilityResponse)
+ },
+)
+_sym_db.RegisterMessage(QueryProbabilityResponse)
+
+BuildRouteRequest = _reflection.GeneratedProtocolMessageType(
+ "BuildRouteRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _BUILDROUTEREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.BuildRouteRequest)
+ },
+)
+_sym_db.RegisterMessage(BuildRouteRequest)
+
+BuildRouteResponse = _reflection.GeneratedProtocolMessageType(
+ "BuildRouteResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _BUILDROUTERESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.BuildRouteResponse)
+ },
+)
+_sym_db.RegisterMessage(BuildRouteResponse)
+
+SubscribeHtlcEventsRequest = _reflection.GeneratedProtocolMessageType(
+ "SubscribeHtlcEventsRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _SUBSCRIBEHTLCEVENTSREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.SubscribeHtlcEventsRequest)
+ },
+)
+_sym_db.RegisterMessage(SubscribeHtlcEventsRequest)
+
+HtlcEvent = _reflection.GeneratedProtocolMessageType(
+ "HtlcEvent",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _HTLCEVENT,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.HtlcEvent)
+ },
+)
+_sym_db.RegisterMessage(HtlcEvent)
+
+HtlcInfo = _reflection.GeneratedProtocolMessageType(
+ "HtlcInfo",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _HTLCINFO,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.HtlcInfo)
+ },
+)
+_sym_db.RegisterMessage(HtlcInfo)
+
+ForwardEvent = _reflection.GeneratedProtocolMessageType(
+ "ForwardEvent",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _FORWARDEVENT,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.ForwardEvent)
+ },
+)
+_sym_db.RegisterMessage(ForwardEvent)
+
+ForwardFailEvent = _reflection.GeneratedProtocolMessageType(
+ "ForwardFailEvent",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _FORWARDFAILEVENT,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.ForwardFailEvent)
+ },
+)
+_sym_db.RegisterMessage(ForwardFailEvent)
+
+SettleEvent = _reflection.GeneratedProtocolMessageType(
+ "SettleEvent",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _SETTLEEVENT,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.SettleEvent)
+ },
+)
+_sym_db.RegisterMessage(SettleEvent)
+
+LinkFailEvent = _reflection.GeneratedProtocolMessageType(
+ "LinkFailEvent",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _LINKFAILEVENT,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.LinkFailEvent)
+ },
+)
+_sym_db.RegisterMessage(LinkFailEvent)
+
+PaymentStatus = _reflection.GeneratedProtocolMessageType(
+ "PaymentStatus",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _PAYMENTSTATUS,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.PaymentStatus)
+ },
+)
+_sym_db.RegisterMessage(PaymentStatus)
+
+CircuitKey = _reflection.GeneratedProtocolMessageType(
+ "CircuitKey",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _CIRCUITKEY,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.CircuitKey)
+ },
+)
+_sym_db.RegisterMessage(CircuitKey)
+
+ForwardHtlcInterceptRequest = _reflection.GeneratedProtocolMessageType(
+ "ForwardHtlcInterceptRequest",
+ (_message.Message,),
+ {
+ "CustomRecordsEntry": _reflection.GeneratedProtocolMessageType(
+ "CustomRecordsEntry",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _FORWARDHTLCINTERCEPTREQUEST_CUSTOMRECORDSENTRY,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.ForwardHtlcInterceptRequest.CustomRecordsEntry)
+ },
+ ),
+ "DESCRIPTOR": _FORWARDHTLCINTERCEPTREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.ForwardHtlcInterceptRequest)
+ },
+)
+_sym_db.RegisterMessage(ForwardHtlcInterceptRequest)
+_sym_db.RegisterMessage(ForwardHtlcInterceptRequest.CustomRecordsEntry)
+
+ForwardHtlcInterceptResponse = _reflection.GeneratedProtocolMessageType(
+ "ForwardHtlcInterceptResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _FORWARDHTLCINTERCEPTRESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.ForwardHtlcInterceptResponse)
+ },
+)
+_sym_db.RegisterMessage(ForwardHtlcInterceptResponse)
+
+UpdateChanStatusRequest = _reflection.GeneratedProtocolMessageType(
+ "UpdateChanStatusRequest",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _UPDATECHANSTATUSREQUEST,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.UpdateChanStatusRequest)
+ },
+)
+_sym_db.RegisterMessage(UpdateChanStatusRequest)
+
+UpdateChanStatusResponse = _reflection.GeneratedProtocolMessageType(
+ "UpdateChanStatusResponse",
+ (_message.Message,),
+ {
+ "DESCRIPTOR": _UPDATECHANSTATUSRESPONSE,
+ "__module__": "router_pb2"
+ # @@protoc_insertion_point(class_scope:routerrpc.UpdateChanStatusResponse)
+ },
+)
+_sym_db.RegisterMessage(UpdateChanStatusResponse)
+
+_ROUTER = DESCRIPTOR.services_by_name["Router"]
+if _descriptor._USE_C_DESCRIPTORS == False:
+
+ DESCRIPTOR._options = None
+ DESCRIPTOR._serialized_options = (
+ b"Z/github.com/lightningnetwork/lnd/lnrpc/routerrpc"
+ )
+ _SENDPAYMENTREQUEST_DESTCUSTOMRECORDSENTRY._options = None
+ _SENDPAYMENTREQUEST_DESTCUSTOMRECORDSENTRY._serialized_options = b"8\001"
+ _SENDPAYMENTREQUEST.fields_by_name["outgoing_chan_id"]._options = None
+ _SENDPAYMENTREQUEST.fields_by_name[
+ "outgoing_chan_id"
+ ]._serialized_options = b"\030\0010\001"
+ _BUILDROUTEREQUEST.fields_by_name["outgoing_chan_id"]._options = None
+ _BUILDROUTEREQUEST.fields_by_name["outgoing_chan_id"]._serialized_options = b"0\001"
+ _FORWARDHTLCINTERCEPTREQUEST_CUSTOMRECORDSENTRY._options = None
+ _FORWARDHTLCINTERCEPTREQUEST_CUSTOMRECORDSENTRY._serialized_options = b"8\001"
+ _ROUTER.methods_by_name["SendToRoute"]._options = None
+ _ROUTER.methods_by_name["SendToRoute"]._serialized_options = b"\210\002\001"
+ _ROUTER.methods_by_name["SendPayment"]._options = None
+ _ROUTER.methods_by_name["SendPayment"]._serialized_options = b"\210\002\001"
+ _ROUTER.methods_by_name["TrackPayment"]._options = None
+ _ROUTER.methods_by_name["TrackPayment"]._serialized_options = b"\210\002\001"
+ _FAILUREDETAIL._serialized_start = 4280
+ _FAILUREDETAIL._serialized_end = 4793
+ _PAYMENTSTATE._serialized_start = 4796
+ _PAYMENTSTATE._serialized_end = 4970
+ _RESOLVEHOLDFORWARDACTION._serialized_start = 4972
+ _RESOLVEHOLDFORWARDACTION._serialized_end = 5032
+ _CHANSTATUSACTION._serialized_start = 5034
+ _CHANSTATUSACTION._serialized_end = 5087
+ _SENDPAYMENTREQUEST._serialized_start = 45
+ _SENDPAYMENTREQUEST._serialized_end = 740
+ _SENDPAYMENTREQUEST_DESTCUSTOMRECORDSENTRY._serialized_start = 684
+ _SENDPAYMENTREQUEST_DESTCUSTOMRECORDSENTRY._serialized_end = 740
+ _TRACKPAYMENTREQUEST._serialized_start = 742
+ _TRACKPAYMENTREQUEST._serialized_end = 814
+ _ROUTEFEEREQUEST._serialized_start = 816
+ _ROUTEFEEREQUEST._serialized_end = 864
+ _ROUTEFEERESPONSE._serialized_start = 866
+ _ROUTEFEERESPONSE._serialized_end = 935
+ _SENDTOROUTEREQUEST._serialized_start = 937
+ _SENDTOROUTEREQUEST._serialized_end = 1031
+ _SENDTOROUTERESPONSE._serialized_start = 1033
+ _SENDTOROUTERESPONSE._serialized_end = 1105
+ _RESETMISSIONCONTROLREQUEST._serialized_start = 1107
+ _RESETMISSIONCONTROLREQUEST._serialized_end = 1135
+ _RESETMISSIONCONTROLRESPONSE._serialized_start = 1137
+ _RESETMISSIONCONTROLRESPONSE._serialized_end = 1166
+ _QUERYMISSIONCONTROLREQUEST._serialized_start = 1168
+ _QUERYMISSIONCONTROLREQUEST._serialized_end = 1196
+ _QUERYMISSIONCONTROLRESPONSE._serialized_start = 1198
+ _QUERYMISSIONCONTROLRESPONSE._serialized_end = 1272
+ _XIMPORTMISSIONCONTROLREQUEST._serialized_start = 1274
+ _XIMPORTMISSIONCONTROLREQUEST._serialized_end = 1358
+ _XIMPORTMISSIONCONTROLRESPONSE._serialized_start = 1360
+ _XIMPORTMISSIONCONTROLRESPONSE._serialized_end = 1391
+ _PAIRHISTORY._serialized_start = 1393
+ _PAIRHISTORY._serialized_end = 1504
+ _PAIRDATA._serialized_start = 1507
+ _PAIRDATA._serialized_end = 1660
+ _GETMISSIONCONTROLCONFIGREQUEST._serialized_start = 1662
+ _GETMISSIONCONTROLCONFIGREQUEST._serialized_end = 1694
+ _GETMISSIONCONTROLCONFIGRESPONSE._serialized_start = 1696
+ _GETMISSIONCONTROLCONFIGRESPONSE._serialized_end = 1778
+ _SETMISSIONCONTROLCONFIGREQUEST._serialized_start = 1780
+ _SETMISSIONCONTROLCONFIGREQUEST._serialized_end = 1861
+ _SETMISSIONCONTROLCONFIGRESPONSE._serialized_start = 1863
+ _SETMISSIONCONTROLCONFIGRESPONSE._serialized_end = 1896
+ _MISSIONCONTROLCONFIG._serialized_start = 1899
+ _MISSIONCONTROLCONFIG._serialized_end = 2062
+ _QUERYPROBABILITYREQUEST._serialized_start = 2064
+ _QUERYPROBABILITYREQUEST._serialized_end = 2143
+ _QUERYPROBABILITYRESPONSE._serialized_start = 2145
+ _QUERYPROBABILITYRESPONSE._serialized_end = 2230
+ _BUILDROUTEREQUEST._serialized_start = 2233
+ _BUILDROUTEREQUEST._serialized_end = 2369
+ _BUILDROUTERESPONSE._serialized_start = 2371
+ _BUILDROUTERESPONSE._serialized_end = 2420
+ _SUBSCRIBEHTLCEVENTSREQUEST._serialized_start = 2422
+ _SUBSCRIBEHTLCEVENTSREQUEST._serialized_end = 2450
+ _HTLCEVENT._serialized_start = 2453
+ _HTLCEVENT._serialized_end = 2929
+ _HTLCEVENT_EVENTTYPE._serialized_start = 2860
+ _HTLCEVENT_EVENTTYPE._serialized_end = 2920
+ _HTLCINFO._serialized_start = 2931
+ _HTLCINFO._serialized_end = 3049
+ _FORWARDEVENT._serialized_start = 3051
+ _FORWARDEVENT._serialized_end = 3100
+ _FORWARDFAILEVENT._serialized_start = 3102
+ _FORWARDFAILEVENT._serialized_end = 3120
+ _SETTLEEVENT._serialized_start = 3122
+ _SETTLEEVENT._serialized_end = 3153
+ _LINKFAILEVENT._serialized_start = 3156
+ _LINKFAILEVENT._serialized_end = 3330
+ _PAYMENTSTATUS._serialized_start = 3332
+ _PAYMENTSTATUS._serialized_end = 3446
+ _CIRCUITKEY._serialized_start = 3448
+ _CIRCUITKEY._serialized_end = 3494
+ _FORWARDHTLCINTERCEPTREQUEST._serialized_start = 3497
+ _FORWARDHTLCINTERCEPTREQUEST._serialized_end = 3904
+ _FORWARDHTLCINTERCEPTREQUEST_CUSTOMRECORDSENTRY._serialized_start = 3852
+ _FORWARDHTLCINTERCEPTREQUEST_CUSTOMRECORDSENTRY._serialized_end = 3904
+ _FORWARDHTLCINTERCEPTRESPONSE._serialized_start = 3907
+ _FORWARDHTLCINTERCEPTRESPONSE._serialized_end = 4136
+ _UPDATECHANSTATUSREQUEST._serialized_start = 4138
+ _UPDATECHANSTATUSREQUEST._serialized_end = 4249
+ _UPDATECHANSTATUSRESPONSE._serialized_start = 4251
+ _UPDATECHANSTATUSRESPONSE._serialized_end = 4277
+ _ROUTER._serialized_start = 5090
+ _ROUTER._serialized_end = 6611
+# @@protoc_insertion_point(module_scope)
diff --git a/lnbits/wallets/lnd_grpc_files/router_pb2_grpc.py b/lnbits/wallets/lnd_grpc_files/router_pb2_grpc.py
new file mode 100644
index 000000000..32923a91e
--- /dev/null
+++ b/lnbits/wallets/lnd_grpc_files/router_pb2_grpc.py
@@ -0,0 +1,871 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+import lnbits.wallets.lnd_grpc_files.lightning_pb2 as lightning__pb2
+import lnbits.wallets.lnd_grpc_files.router_pb2 as router__pb2
+
+
+class RouterStub(object):
+ """Router is a service that offers advanced interaction with the router
+ subsystem of the daemon.
+ """
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.SendPaymentV2 = channel.unary_stream(
+ "/routerrpc.Router/SendPaymentV2",
+ request_serializer=router__pb2.SendPaymentRequest.SerializeToString,
+ response_deserializer=lightning__pb2.Payment.FromString,
+ )
+ self.TrackPaymentV2 = channel.unary_stream(
+ "/routerrpc.Router/TrackPaymentV2",
+ request_serializer=router__pb2.TrackPaymentRequest.SerializeToString,
+ response_deserializer=lightning__pb2.Payment.FromString,
+ )
+ self.EstimateRouteFee = channel.unary_unary(
+ "/routerrpc.Router/EstimateRouteFee",
+ request_serializer=router__pb2.RouteFeeRequest.SerializeToString,
+ response_deserializer=router__pb2.RouteFeeResponse.FromString,
+ )
+ self.SendToRoute = channel.unary_unary(
+ "/routerrpc.Router/SendToRoute",
+ request_serializer=router__pb2.SendToRouteRequest.SerializeToString,
+ response_deserializer=router__pb2.SendToRouteResponse.FromString,
+ )
+ self.SendToRouteV2 = channel.unary_unary(
+ "/routerrpc.Router/SendToRouteV2",
+ request_serializer=router__pb2.SendToRouteRequest.SerializeToString,
+ response_deserializer=lightning__pb2.HTLCAttempt.FromString,
+ )
+ self.ResetMissionControl = channel.unary_unary(
+ "/routerrpc.Router/ResetMissionControl",
+ request_serializer=router__pb2.ResetMissionControlRequest.SerializeToString,
+ response_deserializer=router__pb2.ResetMissionControlResponse.FromString,
+ )
+ self.QueryMissionControl = channel.unary_unary(
+ "/routerrpc.Router/QueryMissionControl",
+ request_serializer=router__pb2.QueryMissionControlRequest.SerializeToString,
+ response_deserializer=router__pb2.QueryMissionControlResponse.FromString,
+ )
+ self.XImportMissionControl = channel.unary_unary(
+ "/routerrpc.Router/XImportMissionControl",
+ request_serializer=router__pb2.XImportMissionControlRequest.SerializeToString,
+ response_deserializer=router__pb2.XImportMissionControlResponse.FromString,
+ )
+ self.GetMissionControlConfig = channel.unary_unary(
+ "/routerrpc.Router/GetMissionControlConfig",
+ request_serializer=router__pb2.GetMissionControlConfigRequest.SerializeToString,
+ response_deserializer=router__pb2.GetMissionControlConfigResponse.FromString,
+ )
+ self.SetMissionControlConfig = channel.unary_unary(
+ "/routerrpc.Router/SetMissionControlConfig",
+ request_serializer=router__pb2.SetMissionControlConfigRequest.SerializeToString,
+ response_deserializer=router__pb2.SetMissionControlConfigResponse.FromString,
+ )
+ self.QueryProbability = channel.unary_unary(
+ "/routerrpc.Router/QueryProbability",
+ request_serializer=router__pb2.QueryProbabilityRequest.SerializeToString,
+ response_deserializer=router__pb2.QueryProbabilityResponse.FromString,
+ )
+ self.BuildRoute = channel.unary_unary(
+ "/routerrpc.Router/BuildRoute",
+ request_serializer=router__pb2.BuildRouteRequest.SerializeToString,
+ response_deserializer=router__pb2.BuildRouteResponse.FromString,
+ )
+ self.SubscribeHtlcEvents = channel.unary_stream(
+ "/routerrpc.Router/SubscribeHtlcEvents",
+ request_serializer=router__pb2.SubscribeHtlcEventsRequest.SerializeToString,
+ response_deserializer=router__pb2.HtlcEvent.FromString,
+ )
+ self.SendPayment = channel.unary_stream(
+ "/routerrpc.Router/SendPayment",
+ request_serializer=router__pb2.SendPaymentRequest.SerializeToString,
+ response_deserializer=router__pb2.PaymentStatus.FromString,
+ )
+ self.TrackPayment = channel.unary_stream(
+ "/routerrpc.Router/TrackPayment",
+ request_serializer=router__pb2.TrackPaymentRequest.SerializeToString,
+ response_deserializer=router__pb2.PaymentStatus.FromString,
+ )
+ self.HtlcInterceptor = channel.stream_stream(
+ "/routerrpc.Router/HtlcInterceptor",
+ request_serializer=router__pb2.ForwardHtlcInterceptResponse.SerializeToString,
+ response_deserializer=router__pb2.ForwardHtlcInterceptRequest.FromString,
+ )
+ self.UpdateChanStatus = channel.unary_unary(
+ "/routerrpc.Router/UpdateChanStatus",
+ request_serializer=router__pb2.UpdateChanStatusRequest.SerializeToString,
+ response_deserializer=router__pb2.UpdateChanStatusResponse.FromString,
+ )
+
+
+class RouterServicer(object):
+ """Router is a service that offers advanced interaction with the router
+ subsystem of the daemon.
+ """
+
+ def SendPaymentV2(self, request, context):
+ """
+ SendPaymentV2 attempts to route a payment described by the passed
+ PaymentRequest to the final destination. The call returns a stream of
+ payment updates.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def TrackPaymentV2(self, request, context):
+ """
+ TrackPaymentV2 returns an update stream for the payment identified by the
+ payment hash.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def EstimateRouteFee(self, request, context):
+ """
+ EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
+ may cost to send an HTLC to the target end destination.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def SendToRoute(self, request, context):
+ """
+ Deprecated, use SendToRouteV2. SendToRoute attempts to make a payment via
+ the specified route. This method differs from SendPayment in that it
+ allows users to specify a full route manually. This can be used for
+ things like rebalancing, and atomic swaps. It differs from the newer
+ SendToRouteV2 in that it doesn't return the full HTLC information.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def SendToRouteV2(self, request, context):
+ """
+ SendToRouteV2 attempts to make a payment via the specified route. This
+ method differs from SendPayment in that it allows users to specify a full
+ route manually. This can be used for things like rebalancing, and atomic
+ swaps.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def ResetMissionControl(self, request, context):
+ """
+ ResetMissionControl clears all mission control state and starts with a clean
+ slate.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def QueryMissionControl(self, request, context):
+ """
+ QueryMissionControl exposes the internal mission control state to callers.
+ It is a development feature.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def XImportMissionControl(self, request, context):
+ """
+ XImportMissionControl is an experimental API that imports the state provided
+ to the internal mission control's state, using all results which are more
+ recent than our existing values. These values will only be imported
+ in-memory, and will not be persisted across restarts.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def GetMissionControlConfig(self, request, context):
+ """
+ GetMissionControlConfig returns mission control's current config.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def SetMissionControlConfig(self, request, context):
+ """
+ SetMissionControlConfig will set mission control's config, if the config
+ provided is valid.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def QueryProbability(self, request, context):
+ """
+ QueryProbability returns the current success probability estimate for a
+ given node pair and amount.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def BuildRoute(self, request, context):
+ """
+ BuildRoute builds a fully specified route based on a list of hop public
+ keys. It retrieves the relevant channel policies from the graph in order to
+ calculate the correct fees and time locks.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def SubscribeHtlcEvents(self, request, context):
+ """
+ SubscribeHtlcEvents creates a uni-directional stream from the server to
+ the client which delivers a stream of htlc events.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def SendPayment(self, request, context):
+ """
+ Deprecated, use SendPaymentV2. SendPayment attempts to route a payment
+ described by the passed PaymentRequest to the final destination. The call
+ returns a stream of payment status updates.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def TrackPayment(self, request, context):
+ """
+ Deprecated, use TrackPaymentV2. TrackPayment returns an update stream for
+ the payment identified by the payment hash.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def HtlcInterceptor(self, request_iterator, context):
+ """*
+ HtlcInterceptor dispatches a bi-directional streaming RPC in which
+ Forwarded HTLC requests are sent to the client and the client responds with
+ a boolean that tells LND if this htlc should be intercepted.
+ In case of interception, the htlc can be either settled, cancelled or
+ resumed later by using the ResolveHoldForward endpoint.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+ def UpdateChanStatus(self, request, context):
+ """
+ UpdateChanStatus attempts to manually set the state of a channel
+ (enabled, disabled, or auto). A manual "disable" request will cause the
+ channel to stay disabled until a subsequent manual request of either
+ "enable" or "auto".
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details("Method not implemented!")
+ raise NotImplementedError("Method not implemented!")
+
+
+def add_RouterServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ "SendPaymentV2": grpc.unary_stream_rpc_method_handler(
+ servicer.SendPaymentV2,
+ request_deserializer=router__pb2.SendPaymentRequest.FromString,
+ response_serializer=lightning__pb2.Payment.SerializeToString,
+ ),
+ "TrackPaymentV2": grpc.unary_stream_rpc_method_handler(
+ servicer.TrackPaymentV2,
+ request_deserializer=router__pb2.TrackPaymentRequest.FromString,
+ response_serializer=lightning__pb2.Payment.SerializeToString,
+ ),
+ "EstimateRouteFee": grpc.unary_unary_rpc_method_handler(
+ servicer.EstimateRouteFee,
+ request_deserializer=router__pb2.RouteFeeRequest.FromString,
+ response_serializer=router__pb2.RouteFeeResponse.SerializeToString,
+ ),
+ "SendToRoute": grpc.unary_unary_rpc_method_handler(
+ servicer.SendToRoute,
+ request_deserializer=router__pb2.SendToRouteRequest.FromString,
+ response_serializer=router__pb2.SendToRouteResponse.SerializeToString,
+ ),
+ "SendToRouteV2": grpc.unary_unary_rpc_method_handler(
+ servicer.SendToRouteV2,
+ request_deserializer=router__pb2.SendToRouteRequest.FromString,
+ response_serializer=lightning__pb2.HTLCAttempt.SerializeToString,
+ ),
+ "ResetMissionControl": grpc.unary_unary_rpc_method_handler(
+ servicer.ResetMissionControl,
+ request_deserializer=router__pb2.ResetMissionControlRequest.FromString,
+ response_serializer=router__pb2.ResetMissionControlResponse.SerializeToString,
+ ),
+ "QueryMissionControl": grpc.unary_unary_rpc_method_handler(
+ servicer.QueryMissionControl,
+ request_deserializer=router__pb2.QueryMissionControlRequest.FromString,
+ response_serializer=router__pb2.QueryMissionControlResponse.SerializeToString,
+ ),
+ "XImportMissionControl": grpc.unary_unary_rpc_method_handler(
+ servicer.XImportMissionControl,
+ request_deserializer=router__pb2.XImportMissionControlRequest.FromString,
+ response_serializer=router__pb2.XImportMissionControlResponse.SerializeToString,
+ ),
+ "GetMissionControlConfig": grpc.unary_unary_rpc_method_handler(
+ servicer.GetMissionControlConfig,
+ request_deserializer=router__pb2.GetMissionControlConfigRequest.FromString,
+ response_serializer=router__pb2.GetMissionControlConfigResponse.SerializeToString,
+ ),
+ "SetMissionControlConfig": grpc.unary_unary_rpc_method_handler(
+ servicer.SetMissionControlConfig,
+ request_deserializer=router__pb2.SetMissionControlConfigRequest.FromString,
+ response_serializer=router__pb2.SetMissionControlConfigResponse.SerializeToString,
+ ),
+ "QueryProbability": grpc.unary_unary_rpc_method_handler(
+ servicer.QueryProbability,
+ request_deserializer=router__pb2.QueryProbabilityRequest.FromString,
+ response_serializer=router__pb2.QueryProbabilityResponse.SerializeToString,
+ ),
+ "BuildRoute": grpc.unary_unary_rpc_method_handler(
+ servicer.BuildRoute,
+ request_deserializer=router__pb2.BuildRouteRequest.FromString,
+ response_serializer=router__pb2.BuildRouteResponse.SerializeToString,
+ ),
+ "SubscribeHtlcEvents": grpc.unary_stream_rpc_method_handler(
+ servicer.SubscribeHtlcEvents,
+ request_deserializer=router__pb2.SubscribeHtlcEventsRequest.FromString,
+ response_serializer=router__pb2.HtlcEvent.SerializeToString,
+ ),
+ "SendPayment": grpc.unary_stream_rpc_method_handler(
+ servicer.SendPayment,
+ request_deserializer=router__pb2.SendPaymentRequest.FromString,
+ response_serializer=router__pb2.PaymentStatus.SerializeToString,
+ ),
+ "TrackPayment": grpc.unary_stream_rpc_method_handler(
+ servicer.TrackPayment,
+ request_deserializer=router__pb2.TrackPaymentRequest.FromString,
+ response_serializer=router__pb2.PaymentStatus.SerializeToString,
+ ),
+ "HtlcInterceptor": grpc.stream_stream_rpc_method_handler(
+ servicer.HtlcInterceptor,
+ request_deserializer=router__pb2.ForwardHtlcInterceptResponse.FromString,
+ response_serializer=router__pb2.ForwardHtlcInterceptRequest.SerializeToString,
+ ),
+ "UpdateChanStatus": grpc.unary_unary_rpc_method_handler(
+ servicer.UpdateChanStatus,
+ request_deserializer=router__pb2.UpdateChanStatusRequest.FromString,
+ response_serializer=router__pb2.UpdateChanStatusResponse.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ "routerrpc.Router", rpc_method_handlers
+ )
+ server.add_generic_rpc_handlers((generic_handler,))
+
+
+# This class is part of an EXPERIMENTAL API.
+class Router(object):
+ """Router is a service that offers advanced interaction with the router
+ subsystem of the daemon.
+ """
+
+ @staticmethod
+ def SendPaymentV2(
+ request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None,
+ ):
+ return grpc.experimental.unary_stream(
+ request,
+ target,
+ "/routerrpc.Router/SendPaymentV2",
+ router__pb2.SendPaymentRequest.SerializeToString,
+ lightning__pb2.Payment.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def TrackPaymentV2(
+ request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None,
+ ):
+ return grpc.experimental.unary_stream(
+ request,
+ target,
+ "/routerrpc.Router/TrackPaymentV2",
+ router__pb2.TrackPaymentRequest.SerializeToString,
+ lightning__pb2.Payment.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def EstimateRouteFee(
+ 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,
+ "/routerrpc.Router/EstimateRouteFee",
+ router__pb2.RouteFeeRequest.SerializeToString,
+ router__pb2.RouteFeeResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def SendToRoute(
+ 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,
+ "/routerrpc.Router/SendToRoute",
+ router__pb2.SendToRouteRequest.SerializeToString,
+ router__pb2.SendToRouteResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def SendToRouteV2(
+ 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,
+ "/routerrpc.Router/SendToRouteV2",
+ router__pb2.SendToRouteRequest.SerializeToString,
+ lightning__pb2.HTLCAttempt.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def ResetMissionControl(
+ 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,
+ "/routerrpc.Router/ResetMissionControl",
+ router__pb2.ResetMissionControlRequest.SerializeToString,
+ router__pb2.ResetMissionControlResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def QueryMissionControl(
+ 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,
+ "/routerrpc.Router/QueryMissionControl",
+ router__pb2.QueryMissionControlRequest.SerializeToString,
+ router__pb2.QueryMissionControlResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def XImportMissionControl(
+ 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,
+ "/routerrpc.Router/XImportMissionControl",
+ router__pb2.XImportMissionControlRequest.SerializeToString,
+ router__pb2.XImportMissionControlResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def GetMissionControlConfig(
+ 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,
+ "/routerrpc.Router/GetMissionControlConfig",
+ router__pb2.GetMissionControlConfigRequest.SerializeToString,
+ router__pb2.GetMissionControlConfigResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def SetMissionControlConfig(
+ 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,
+ "/routerrpc.Router/SetMissionControlConfig",
+ router__pb2.SetMissionControlConfigRequest.SerializeToString,
+ router__pb2.SetMissionControlConfigResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def QueryProbability(
+ 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,
+ "/routerrpc.Router/QueryProbability",
+ router__pb2.QueryProbabilityRequest.SerializeToString,
+ router__pb2.QueryProbabilityResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def BuildRoute(
+ 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,
+ "/routerrpc.Router/BuildRoute",
+ router__pb2.BuildRouteRequest.SerializeToString,
+ router__pb2.BuildRouteResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def SubscribeHtlcEvents(
+ request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None,
+ ):
+ return grpc.experimental.unary_stream(
+ request,
+ target,
+ "/routerrpc.Router/SubscribeHtlcEvents",
+ router__pb2.SubscribeHtlcEventsRequest.SerializeToString,
+ router__pb2.HtlcEvent.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def SendPayment(
+ request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None,
+ ):
+ return grpc.experimental.unary_stream(
+ request,
+ target,
+ "/routerrpc.Router/SendPayment",
+ router__pb2.SendPaymentRequest.SerializeToString,
+ router__pb2.PaymentStatus.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def TrackPayment(
+ request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None,
+ ):
+ return grpc.experimental.unary_stream(
+ request,
+ target,
+ "/routerrpc.Router/TrackPayment",
+ router__pb2.TrackPaymentRequest.SerializeToString,
+ router__pb2.PaymentStatus.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def HtlcInterceptor(
+ request_iterator,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None,
+ ):
+ return grpc.experimental.stream_stream(
+ request_iterator,
+ target,
+ "/routerrpc.Router/HtlcInterceptor",
+ router__pb2.ForwardHtlcInterceptResponse.SerializeToString,
+ router__pb2.ForwardHtlcInterceptRequest.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
+
+ @staticmethod
+ def UpdateChanStatus(
+ 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,
+ "/routerrpc.Router/UpdateChanStatus",
+ router__pb2.UpdateChanStatusRequest.SerializeToString,
+ router__pb2.UpdateChanStatusResponse.FromString,
+ options,
+ channel_credentials,
+ insecure,
+ call_credentials,
+ compression,
+ wait_for_ready,
+ timeout,
+ metadata,
+ )
diff --git a/lnbits/wallets/lndgrpc.py b/lnbits/wallets/lndgrpc.py
index 44fee78c3..fee8b955a 100644
--- a/lnbits/wallets/lndgrpc.py
+++ b/lnbits/wallets/lndgrpc.py
@@ -2,10 +2,11 @@ imports_ok = True
try:
import grpc
from google import protobuf
+ from grpc import RpcError
except ImportError: # pragma: nocover
imports_ok = False
-
+import asyncio
import base64
import binascii
import hashlib
@@ -19,6 +20,8 @@ from .macaroon import AESCipher, load_macaroon
if imports_ok:
import lnbits.wallets.lnd_grpc_files.lightning_pb2 as ln
import lnbits.wallets.lnd_grpc_files.lightning_pb2_grpc as lnrpc
+ import lnbits.wallets.lnd_grpc_files.router_pb2 as router
+ import lnbits.wallets.lnd_grpc_files.router_pb2_grpc as routerrpc
from .base import (
InvoiceResponse,
@@ -111,6 +114,7 @@ class LndWallet(Wallet):
f"{self.endpoint}:{self.port}", composite_creds
)
self.rpc = lnrpc.LightningStub(channel)
+ self.routerpc = routerrpc.RouterStub(channel)
def metadata_callback(self, _, callback):
callback([("macaroon", self.macaroon)], None)
@@ -118,6 +122,8 @@ class LndWallet(Wallet):
async def status(self) -> StatusResponse:
try:
resp = await self.rpc.ChannelBalance(ln.ChannelBalanceRequest())
+ except RpcError as exc:
+ return StatusResponse(str(exc._details), 0)
except Exception as exc:
return StatusResponse(str(exc), 0)
@@ -132,7 +138,10 @@ class LndWallet(Wallet):
params: Dict = {"value": amount, "expiry": 600, "private": True}
if description_hash:
- params["description_hash"] = description_hash # as bytes directly
+ params["description_hash"] = hashlib.sha256(
+ description_hash
+ ).digest() # as bytes directly
+
else:
params["memo"] = memo or ""
@@ -148,18 +157,39 @@ class LndWallet(Wallet):
return InvoiceResponse(True, checking_id, payment_request, None)
async def pay_invoice(self, bolt11: str, fee_limit_msat: int) -> PaymentResponse:
- fee_limit_fixed = ln.FeeLimit(fixed=fee_limit_msat // 1000)
- req = ln.SendRequest(payment_request=bolt11, fee_limit=fee_limit_fixed)
- resp = await self.rpc.SendPaymentSync(req)
+ # fee_limit_fixed = ln.FeeLimit(fixed=fee_limit_msat // 1000)
+ req = router.SendPaymentRequest(
+ payment_request=bolt11,
+ fee_limit_msat=fee_limit_msat,
+ timeout_seconds=30,
+ no_inflight_updates=True,
+ )
+ try:
+ resp = await self.routerpc.SendPaymentV2(req).read()
+ except RpcError as exc:
+ return PaymentResponse(False, "", 0, None, exc._details)
+ except Exception as exc:
+ return PaymentResponse(False, "", 0, None, str(exc))
- if resp.payment_error:
- return PaymentResponse(False, "", 0, None, resp.payment_error)
+ # PaymentStatus from https://github.com/lightningnetwork/lnd/blob/master/channeldb/payments.go#L178
+ statuses = {
+ 0: None, # NON_EXISTENT
+ 1: None, # IN_FLIGHT
+ 2: True, # SUCCEEDED
+ 3: False, # FAILED
+ }
- r_hash = hashlib.sha256(resp.payment_preimage).digest()
- checking_id = stringify_checking_id(r_hash)
- fee_msat = resp.payment_route.total_fees_msat
- preimage = resp.payment_preimage.hex()
- return PaymentResponse(True, checking_id, fee_msat, preimage, None)
+ if resp.status in [0, 1, 3]:
+ fee_msat = 0
+ preimage = ""
+ checking_id = ""
+ elif resp.status == 2: # SUCCEEDED
+ fee_msat = resp.htlcs[-1].route.total_fees_msat
+ preimage = resp.payment_preimage
+ checking_id = resp.payment_hash
+ return PaymentResponse(
+ statuses[resp.status], checking_id, fee_msat, preimage, None
+ )
async def get_invoice_status(self, checking_id: str) -> PaymentStatus:
try:
@@ -178,20 +208,55 @@ class LndWallet(Wallet):
return PaymentStatus(None)
async def get_payment_status(self, checking_id: str) -> PaymentStatus:
- return PaymentStatus(True)
+ """
+ This routine checks the payment status using routerpc.TrackPaymentV2.
+ """
+ try:
+ r_hash = parse_checking_id(checking_id)
+ if len(r_hash) != 32:
+ raise binascii.Error
+ except binascii.Error:
+ # this may happen if we switch between backend wallets
+ # that use different checking_id formats
+ return PaymentStatus(None)
+
+ # for some reason our checking_ids are in base64 but the payment hashes
+ # returned here are in hex, lnd is weird
+ checking_id = checking_id.replace("_", "/")
+ checking_id = base64.b64decode(checking_id).hex()
+
+ resp = self.routerpc.TrackPaymentV2(
+ router.TrackPaymentRequest(payment_hash=r_hash)
+ )
+
+ # HTLCAttempt.HTLCStatus:
+ # https://github.com/lightningnetwork/lnd/blob/master/lnrpc/lightning.proto#L3641
+ statuses = {
+ 0: None, # IN_FLIGHT
+ 1: True, # "SUCCEEDED"
+ 2: False, # "FAILED"
+ }
+
+ try:
+ async for payment in resp:
+ return PaymentStatus(statuses[payment.htlcs[-1].status])
+ except: # most likely the payment wasn't found
+ return PaymentStatus(None)
+
+ return PaymentStatus(None)
async def paid_invoices_stream(self) -> AsyncGenerator[str, None]:
- request = ln.InvoiceSubscription()
- try:
- async for i in self.rpc.SubscribeInvoices(request):
- if not i.settled:
- continue
+ while True:
+ request = ln.InvoiceSubscription()
+ try:
+ async for i in self.rpc.SubscribeInvoices(request):
+ if not i.settled:
+ continue
- checking_id = stringify_checking_id(i.r_hash)
- yield checking_id
- except error:
- logger.error(error)
-
- logger.error(
- "lost connection to lnd InvoiceSubscription, please restart lnbits."
- )
+ checking_id = stringify_checking_id(i.r_hash)
+ yield checking_id
+ except Exception as exc:
+ logger.error(
+ f"lost connection to lnd invoices stream: '{exc}', retrying in 5 seconds"
+ )
+ await asyncio.sleep(5)
diff --git a/lnbits/wallets/lndrest.py b/lnbits/wallets/lndrest.py
index 575db64dd..9f7f95581 100644
--- a/lnbits/wallets/lndrest.py
+++ b/lnbits/wallets/lndrest.py
@@ -1,5 +1,6 @@
import asyncio
import base64
+import hashlib
import json
from os import getenv
from pydoc import describe
@@ -75,9 +76,9 @@ class LndRestWallet(Wallet):
) -> InvoiceResponse:
data: Dict = {"value": amount, "private": True}
if description_hash:
- data["description_hash"] = base64.b64encode(description_hash).decode(
- "ascii"
- )
+ data["description_hash"] = base64.b64encode(
+ hashlib.sha256(description_hash).digest()
+ ).decode("ascii")
else:
data["memo"] = memo or ""
@@ -141,15 +142,10 @@ class LndRestWallet(Wallet):
return PaymentStatus(True)
async def get_payment_status(self, checking_id: str) -> PaymentStatus:
- async with httpx.AsyncClient(verify=self.cert) as client:
- r = await client.get(
- url=f"{self.endpoint}/v1/payments",
- headers=self.auth,
- params={"max_payments": "20", "reversed": True},
- )
-
- if r.is_error:
- return PaymentStatus(None)
+ """
+ This routine checks the payment status using routerpc.TrackPaymentV2.
+ """
+ url = f"{self.endpoint}/v2/router/track/{checking_id}"
# check payment.status:
# https://api.lightning.community/rest/index.html?python#peersynctype
@@ -160,14 +156,27 @@ class LndRestWallet(Wallet):
"FAILED": False,
}
- # for some reason our checking_ids are in base64 but the payment hashes
- # returned here are in hex, lnd is weird
- checking_id = checking_id.replace("_", "/")
- checking_id = base64.b64decode(checking_id).hex()
-
- for p in r.json()["payments"]:
- if p["payment_hash"] == checking_id:
- return PaymentStatus(statuses[p["status"]])
+ async with httpx.AsyncClient(
+ timeout=None, headers=self.auth, verify=self.cert
+ ) as client:
+ async with client.stream("GET", url) as r:
+ async for l in r.aiter_lines():
+ try:
+ line = json.loads(l)
+ if line.get("error"):
+ logger.error(
+ line["error"]["message"]
+ if "message" in line["error"]
+ else line["error"]
+ )
+ return PaymentStatus(None)
+ payment = line.get("result")
+ if payment is not None and payment.get("status"):
+ return PaymentStatus(statuses[payment["status"]])
+ else:
+ return PaymentStatus(None)
+ except:
+ continue
return PaymentStatus(None)
@@ -190,10 +199,8 @@ class LndRestWallet(Wallet):
payment_hash = base64.b64decode(inv["r_hash"]).hex()
yield payment_hash
- except (OSError, httpx.ConnectError, httpx.ReadError):
- pass
-
- logger.error(
- "lost connection to lnd invoices stream, retrying in 5 seconds"
- )
- await asyncio.sleep(5)
+ except Exception as exc:
+ logger.error(
+ f"lost connection to lnd invoices stream: '{exc}', retrying in 5 seconds"
+ )
+ await asyncio.sleep(5)
diff --git a/lnbits/wallets/lnpay.py b/lnbits/wallets/lnpay.py
index 18b4f8bbe..7ba45a228 100644
--- a/lnbits/wallets/lnpay.py
+++ b/lnbits/wallets/lnpay.py
@@ -1,4 +1,5 @@
import asyncio
+import hashlib
import json
from http import HTTPStatus
from os import getenv
@@ -54,7 +55,7 @@ class LNPayWallet(Wallet):
) -> InvoiceResponse:
data: Dict = {"num_satoshis": f"{amount}"}
if description_hash:
- data["description_hash"] = description_hash.hex()
+ data["description_hash"] = hashlib.sha256(description_hash).hexdigest()
else:
data["memo"] = memo or ""
diff --git a/lnbits/wallets/lntxbot.py b/lnbits/wallets/lntxbot.py
index 3c758e6c1..9b0954e9e 100644
--- a/lnbits/wallets/lntxbot.py
+++ b/lnbits/wallets/lntxbot.py
@@ -1,4 +1,5 @@
import asyncio
+import hashlib
import json
from os import getenv
from typing import AsyncGenerator, Dict, Optional
@@ -54,7 +55,7 @@ class LntxbotWallet(Wallet):
) -> InvoiceResponse:
data: Dict = {"amt": str(amount)}
if description_hash:
- data["description_hash"] = description_hash.hex()
+ data["description_hash"] = hashlib.sha256(description_hash).hexdigest()
else:
data["memo"] = memo or ""
diff --git a/lnbits/wallets/opennode.py b/lnbits/wallets/opennode.py
index be82365dd..0760d186b 100644
--- a/lnbits/wallets/opennode.py
+++ b/lnbits/wallets/opennode.py
@@ -65,7 +65,7 @@ class OpenNodeWallet(Wallet):
json={
"amount": amount,
"description": memo or "",
- "callback_url": url_for("/webhook_listener", _external=True),
+ # "callback_url": url_for("/webhook_listener", _external=True),
},
timeout=40,
)
diff --git a/lnbits/wallets/spark.py b/lnbits/wallets/spark.py
index 142e388d2..55758aab0 100644
--- a/lnbits/wallets/spark.py
+++ b/lnbits/wallets/spark.py
@@ -1,4 +1,5 @@
import asyncio
+import hashlib
import json
import random
from os import getenv
@@ -101,7 +102,7 @@ class SparkWallet(Wallet):
r = await self.invoicewithdescriptionhash(
msatoshi=amount * 1000,
label=label,
- description_hash=description_hash.hex(),
+ description_hash=hashlib.sha256(description_hash).hexdigest(),
)
else:
r = await self.invoice(
diff --git a/lnbits/wallets/void.py b/lnbits/wallets/void.py
index 1139f7a88..d6a01d3ad 100644
--- a/lnbits/wallets/void.py
+++ b/lnbits/wallets/void.py
@@ -31,10 +31,10 @@ class VoidWallet(Wallet):
raise Unsupported("")
async def get_invoice_status(self, checking_id: str) -> PaymentStatus:
- raise Unsupported("")
+ return PaymentStatus(None)
async def get_payment_status(self, checking_id: str) -> PaymentStatus:
- raise Unsupported("")
+ return PaymentStatus(None)
async def paid_invoices_stream(self) -> AsyncGenerator[str, None]:
yield ""
diff --git a/mypy.ini b/mypy.ini
deleted file mode 100644
index e5a974b51..000000000
--- a/mypy.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-[mypy]
-ignore_missing_imports = True
-exclude = (?x)(
- ^lnbits/extensions.
- | ^lnbits/wallets/lnd_grpc_files.
- )
-[mypy-lnbits.wallets.lnd_grpc_files.*]
-follow_imports = skip
diff --git a/nix/modules/lnbits-service.nix b/nix/modules/lnbits-service.nix
index 5d8e06403..e7029e672 100644
--- a/nix/modules/lnbits-service.nix
+++ b/nix/modules/lnbits-service.nix
@@ -3,7 +3,7 @@
let
defaultUser = "lnbits";
cfg = config.services.lnbits;
- inherit (lib) mkOption mkIf types optionalAttrs;
+ inherit (lib) mkOption mkIf types optionalAttrs literalExpression;
in
{
@@ -25,6 +25,7 @@ in
};
package = mkOption {
type = types.package;
+ defaultText = literalExpression "pkgs.lnbits";
default = pkgs.lnbits;
description = ''
The lnbits package to use.
diff --git a/poetry.lock b/poetry.lock
index 48c508ceb..975c62b2e 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,6 +1,6 @@
[[package]]
name = "aiofiles"
-version = "0.7.0"
+version = "0.8.0"
description = "File support for asyncio."
category = "main"
optional = false
@@ -17,6 +17,7 @@ python-versions = ">=3.6.2"
[package.dependencies]
idna = ">=2.8"
sniffio = ">=1.1"
+typing-extensions = {version = "*", markers = "python_version < \"3.8\""}
[package.extras]
doc = ["packaging", "sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"]
@@ -31,9 +32,20 @@ category = "main"
optional = false
python-versions = ">=3.6"
+[package.dependencies]
+typing-extensions = {version = "*", markers = "python_version < \"3.8\""}
+
[package.extras]
tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"]
+[[package]]
+name = "atomicwrites"
+version = "1.4.1"
+description = "Atomic file writes."
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
[[package]]
name = "attrs"
version = "21.2.0"
@@ -64,6 +76,29 @@ category = "main"
optional = false
python-versions = "*"
+[[package]]
+name = "black"
+version = "22.6.0"
+description = "The uncompromising code formatter."
+category = "dev"
+optional = false
+python-versions = ">=3.6.2"
+
+[package.dependencies]
+click = ">=8.0.0"
+mypy-extensions = ">=0.4.3"
+pathspec = ">=0.9.0"
+platformdirs = ">=2"
+tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""}
+typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""}
+typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""}
+
+[package.extras]
+colorama = ["colorama (>=0.4.3)"]
+d = ["aiohttp (>=3.7.4)"]
+jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
+uvloop = ["uvloop (>=0.15.2)"]
+
[[package]]
name = "cerberus"
version = "1.3.4"
@@ -112,6 +147,7 @@ python-versions = ">=3.6"
[package.dependencies]
colorama = {version = "*", markers = "platform_system == \"Windows\""}
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
[[package]]
name = "colorama"
@@ -121,6 +157,20 @@ category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+[[package]]
+name = "coverage"
+version = "6.4.2"
+description = "Code coverage measurement for Python"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""}
+
+[package.extras]
+toml = ["tomli"]
+
[[package]]
name = "ecdsa"
version = "0.17.0"
@@ -190,49 +240,52 @@ python-versions = ">=3.6"
[[package]]
name = "httpcore"
-version = "0.13.7"
+version = "0.15.0"
description = "A minimal low-level HTTP client."
category = "main"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[package.dependencies]
anyio = ">=3.0.0,<4.0.0"
+certifi = "*"
h11 = ">=0.11,<0.13"
sniffio = ">=1.0.0,<2.0.0"
[package.extras]
http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (>=1.0.0,<2.0.0)"]
[[package]]
name = "httptools"
-version = "0.2.0"
+version = "0.4.0"
description = "A collection of framework independent HTTP protocol utils."
category = "main"
optional = false
-python-versions = "*"
+python-versions = ">=3.5.0"
[package.extras]
-test = ["Cython (==0.29.22)"]
+test = ["Cython (>=0.29.24,<0.30.0)"]
[[package]]
name = "httpx"
-version = "0.19.0"
+version = "0.23.0"
description = "The next generation HTTP client."
category = "main"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.7"
[package.dependencies]
certifi = "*"
-charset-normalizer = "*"
-httpcore = ">=0.13.3,<0.14.0"
+httpcore = ">=0.15.0,<0.16.0"
rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]}
sniffio = "*"
[package.extras]
brotli = ["brotlicffi", "brotli"]
+cli = ["click (>=8.0.0,<9.0.0)", "rich (>=10,<13)", "pygments (>=2.0.0,<3.0.0)"]
http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (>=1.0.0,<2.0.0)"]
[[package]]
name = "idna"
@@ -251,6 +304,7 @@ optional = false
python-versions = ">=3.6"
[package.dependencies]
+typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
zipp = ">=0.5"
[package.extras]
@@ -258,6 +312,28 @@ docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
perf = ["ipython"]
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
+[[package]]
+name = "iniconfig"
+version = "1.1.1"
+description = "iniconfig: brain-dead simple config-ini parsing"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "isort"
+version = "5.10.1"
+description = "A Python utility / library to sort Python imports."
+category = "dev"
+optional = false
+python-versions = ">=3.6.1,<4.0"
+
+[package.extras]
+pipfile_deprecated_finder = ["pipreqs", "requirementslib"]
+requirements_deprecated_finder = ["pipreqs", "pip-api"]
+colors = ["colorama (>=0.4.3,<0.5.0)"]
+plugins = ["setuptools"]
+
[[package]]
name = "jinja2"
version = "3.0.1"
@@ -283,6 +359,7 @@ python-versions = ">=3.6"
[package.dependencies]
bech32 = "*"
pydantic = "*"
+typing-extensions = {version = "*", markers = "python_version < \"3.8\""}
[[package]]
name = "loguru"
@@ -297,7 +374,7 @@ colorama = {version = ">=0.3.4", markers = "sys_platform == \"win32\""}
win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""}
[package.extras]
-dev = ["codecov (>=2.0.15)", "colorama (>=0.3.4)", "flake8 (>=3.7.7)", "tox (>=3.9.0)", "tox-travis (>=0.12)", "pytest (>=4.6.2)", "pytest-cov (>=2.7.1)", "Sphinx (>=2.2.1)", "sphinx-autobuild (>=0.7.1)", "sphinx-rtd-theme (>=0.4.3)", "black (>=19.10b0)", "isort (>=5.1.1)"]
+dev = ["isort (>=5.1.1)", "black (>=19.10b0)", "sphinx-rtd-theme (>=0.4.3)", "sphinx-autobuild (>=0.7.1)", "Sphinx (>=2.2.1)", "pytest-cov (>=2.7.1)", "pytest (>=4.6.2)", "tox-travis (>=0.12)", "tox (>=3.9.0)", "flake8 (>=3.7.7)", "colorama (>=0.3.4)", "codecov (>=2.0.15)"]
[[package]]
name = "markupsafe"
@@ -309,18 +386,61 @@ python-versions = ">=3.6"
[[package]]
name = "marshmallow"
-version = "3.13.0"
+version = "3.17.0"
description = "A lightweight library for converting complex datatypes to and from native Python datatypes."
category = "main"
optional = false
-python-versions = ">=3.5"
+python-versions = ">=3.7"
+
+[package.dependencies]
+packaging = ">=17.0"
[package.extras]
-dev = ["pytest", "pytz", "simplejson", "mypy (==0.910)", "flake8 (==3.9.2)", "flake8-bugbear (==21.4.3)", "pre-commit (>=2.4,<3.0)", "tox"]
-docs = ["sphinx (==4.1.1)", "sphinx-issues (==1.2.0)", "alabaster (==0.7.12)", "sphinx-version-warning (==1.1.2)", "autodocsumm (==0.2.6)"]
-lint = ["mypy (==0.910)", "flake8 (==3.9.2)", "flake8-bugbear (==21.4.3)", "pre-commit (>=2.4,<3.0)"]
+dev = ["pytest", "pytz", "simplejson", "mypy (==0.961)", "flake8 (==4.0.1)", "flake8-bugbear (==22.6.22)", "pre-commit (>=2.4,<3.0)", "tox"]
+docs = ["sphinx (==4.5.0)", "sphinx-issues (==3.0.1)", "alabaster (==0.7.12)", "sphinx-version-warning (==1.1.2)", "autodocsumm (==0.2.8)"]
+lint = ["mypy (==0.961)", "flake8 (==4.0.1)", "flake8-bugbear (==22.6.22)", "pre-commit (>=2.4,<3.0)"]
tests = ["pytest", "pytz", "simplejson"]
+[[package]]
+name = "mock"
+version = "4.0.3"
+description = "Rolling backport of unittest.mock for all Pythons"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+build = ["twine", "wheel", "blurb"]
+docs = ["sphinx"]
+test = ["pytest (<5.4)", "pytest-cov"]
+
+[[package]]
+name = "mypy"
+version = "0.971"
+description = "Optional static typing for Python"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+mypy-extensions = ">=0.4.3"
+tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
+typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""}
+typing-extensions = ">=3.10"
+
+[package.extras]
+dmypy = ["psutil (>=4.0)"]
+python2 = ["typed-ast (>=1.4.0,<2)"]
+reports = ["lxml"]
+
+[[package]]
+name = "mypy-extensions"
+version = "0.4.3"
+description = "Experimental type system extensions for programs checked with the mypy typechecker."
+category = "dev"
+optional = false
+python-versions = "*"
+
[[package]]
name = "outcome"
version = "1.1.0"
@@ -332,6 +452,52 @@ python-versions = ">=3.6"
[package.dependencies]
attrs = ">=19.2.0"
+[[package]]
+name = "packaging"
+version = "21.3"
+description = "Core utilities for Python packages"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
+
+[[package]]
+name = "pathspec"
+version = "0.9.0"
+description = "Utility library for gitignore style pattern matching of file paths."
+category = "dev"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+
+[[package]]
+name = "platformdirs"
+version = "2.5.2"
+description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.extras]
+docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"]
+test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"]
+
+[[package]]
+name = "pluggy"
+version = "1.0.0"
+description = "plugin and hook calling mechanisms for python"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+
+[package.extras]
+testing = ["pytest-benchmark", "pytest"]
+dev = ["tox", "pre-commit"]
+
[[package]]
name = "psycopg2-binary"
version = "2.9.1"
@@ -340,6 +506,14 @@ category = "main"
optional = false
python-versions = ">=3.6"
+[[package]]
+name = "py"
+version = "1.11.0"
+description = "library with cross-python path, ini-parsing, io, code, log facilities"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
[[package]]
name = "pycparser"
version = "2.21"
@@ -371,6 +545,17 @@ typing-extensions = ">=3.7.4.3"
dotenv = ["python-dotenv (>=0.10.4)"]
email = ["email-validator (>=1.0.3)"]
+[[package]]
+name = "pyparsing"
+version = "3.0.9"
+description = "pyparsing module - Classes and methods to define and execute parsing grammars"
+category = "main"
+optional = false
+python-versions = ">=3.6.8"
+
+[package.extras]
+diagrams = ["railroad-diagrams", "jinja2"]
+
[[package]]
name = "pypng"
version = "0.0.21"
@@ -401,6 +586,58 @@ python-versions = "*"
[package.dependencies]
six = "*"
+[[package]]
+name = "pytest"
+version = "7.1.2"
+description = "pytest: simple powerful testing with Python"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
+attrs = ">=19.2.0"
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+iniconfig = "*"
+packaging = "*"
+pluggy = ">=0.12,<2.0"
+py = ">=1.8.2"
+tomli = ">=1.0.0"
+
+[package.extras]
+testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
+
+[[package]]
+name = "pytest-asyncio"
+version = "0.19.0"
+description = "Pytest support for asyncio"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[package.dependencies]
+pytest = ">=6.1.0"
+typing-extensions = {version = ">=3.7.2", markers = "python_version < \"3.8\""}
+
+[package.extras]
+testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)", "flaky (>=3.5.0)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"]
+
+[[package]]
+name = "pytest-cov"
+version = "3.0.0"
+description = "Pytest plugin for measuring coverage."
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+coverage = {version = ">=5.2.1", extras = ["toml"]}
+pytest = ">=4.6"
+
+[package.extras]
+testing = ["virtualenv", "pytest-xdist", "six", "process-tests", "hunter", "fields"]
+
[[package]]
name = "python-dotenv"
version = "0.19.0"
@@ -505,7 +742,7 @@ pymysql = ["pymysql (<1)", "pymysql"]
[[package]]
name = "sqlalchemy-aio"
-version = "0.16.0"
+version = "0.17.0"
description = "Async support for SQLAlchemy."
category = "main"
optional = false
@@ -514,7 +751,7 @@ python-versions = ">=3.6"
[package.dependencies]
outcome = "*"
represent = ">=1.4"
-sqlalchemy = "*"
+sqlalchemy = "<1.4"
[package.extras]
test = ["pytest (>=5.4)", "pytest-asyncio (>=0.14)", "pytest-trio (>=0.6)"]
@@ -544,6 +781,30 @@ typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""
[package.extras]
full = ["itsdangerous", "jinja2", "python-multipart", "pyyaml", "requests"]
+[[package]]
+name = "tomli"
+version = "2.0.1"
+description = "A lil' TOML parser"
+category = "dev"
+optional = false
+python-versions = ">=3.7"
+
+[[package]]
+name = "typed-ast"
+version = "1.5.4"
+description = "a fork of Python 2 and 3 ast modules with type comment support"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[[package]]
+name = "types-protobuf"
+version = "3.19.22"
+description = "Typing stubs for protobuf"
+category = "dev"
+optional = false
+python-versions = "*"
+
[[package]]
name = "typing-extensions"
version = "3.10.0.2"
@@ -563,6 +824,7 @@ python-versions = ">=3.7"
[package.dependencies]
click = ">=7.0"
h11 = ">=0.8"
+typing-extensions = {version = "*", markers = "python_version < \"3.8\""}
[package.extras]
standard = ["websockets (>=10.0)", "httptools (>=0.4.0)", "watchfiles (>=0.13)", "python-dotenv (>=0.13)", "PyYAML (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "colorama (>=0.4)"]
@@ -588,6 +850,19 @@ category = "main"
optional = false
python-versions = ">=3.5"
+[[package]]
+name = "websocket-client"
+version = "1.3.3"
+description = "WebSocket client for Python with low level API options"
+category = "main"
+optional = false
+python-versions = ">=3.7"
+
+[package.extras]
+docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"]
+optional = ["python-socks", "wsaccel"]
+test = ["websockets"]
+
[[package]]
name = "websockets"
version = "10.0"
@@ -605,7 +880,7 @@ optional = false
python-versions = ">=3.5"
[package.extras]
-dev = ["pytest (>=4.6.2)", "black (>=19.3b0)"]
+dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"]
[[package]]
name = "zipp"
@@ -621,13 +896,13 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytes
[metadata]
lock-version = "1.1"
-python-versions = "^3.9"
-content-hash = "921a5f4fe1a4d1a4c3b490f8631ed4bdd0d8af1f1992f1a4f74eaed986c4eb0b"
+python-versions = "^3.9 | ^3.8 | ^3.7"
+content-hash = "cadb8f2e46f0c083e91956f4f0f70b53b6c106f1c0b47972b57132dfee357367"
[metadata.files]
aiofiles = [
- {file = "aiofiles-0.7.0-py3-none-any.whl", hash = "sha256:c67a6823b5f23fcab0a2595a289cec7d8c863ffcb4322fb8cd6b90400aedfdbc"},
- {file = "aiofiles-0.7.0.tar.gz", hash = "sha256:a1c4fc9b2ff81568c83e21392a82f344ea9d23da906e4f6a52662764545e19d4"},
+ {file = "aiofiles-0.8.0-py3-none-any.whl", hash = "sha256:7a973fc22b29e9962d0897805ace5856e6a566ab1f0c8e5c91ff6c866519c937"},
+ {file = "aiofiles-0.8.0.tar.gz", hash = "sha256:8334f23235248a3b2e83b2c3a78a22674f39969b96397126cc93664d9a901e59"},
]
anyio = [
{file = "anyio-3.6.1-py3-none-any.whl", hash = "sha256:cb29b9c70620506a9a8f87a309591713446953302d7d995344d0d7c6c0c9a7be"},
@@ -637,6 +912,9 @@ asgiref = [
{file = "asgiref-3.4.1-py3-none-any.whl", hash = "sha256:ffc141aa908e6f175673e7b1b3b7af4fdb0ecb738fc5c8b88f69f055c2415214"},
{file = "asgiref-3.4.1.tar.gz", hash = "sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9"},
]
+atomicwrites = [
+ {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"},
+]
attrs = [
{file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"},
{file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"},
@@ -650,6 +928,31 @@ bitstring = [
{file = "bitstring-3.1.9-py3-none-any.whl", hash = "sha256:0de167daa6a00c9386255a7cac931b45e6e24e0ad7ea64f1f92a64ac23ad4578"},
{file = "bitstring-3.1.9.tar.gz", hash = "sha256:a5848a3f63111785224dca8bb4c0a75b62ecdef56a042c8d6be74b16f7e860e7"},
]
+black = [
+ {file = "black-22.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f586c26118bc6e714ec58c09df0157fe2d9ee195c764f630eb0d8e7ccce72e69"},
+ {file = "black-22.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b270a168d69edb8b7ed32c193ef10fd27844e5c60852039599f9184460ce0807"},
+ {file = "black-22.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6797f58943fceb1c461fb572edbe828d811e719c24e03375fd25170ada53825e"},
+ {file = "black-22.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c85928b9d5f83b23cee7d0efcb310172412fbf7cb9d9ce963bd67fd141781def"},
+ {file = "black-22.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:f6fe02afde060bbeef044af7996f335fbe90b039ccf3f5eb8f16df8b20f77666"},
+ {file = "black-22.6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cfaf3895a9634e882bf9d2363fed5af8888802d670f58b279b0bece00e9a872d"},
+ {file = "black-22.6.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94783f636bca89f11eb5d50437e8e17fbc6a929a628d82304c80fa9cd945f256"},
+ {file = "black-22.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2ea29072e954a4d55a2ff58971b83365eba5d3d357352a07a7a4df0d95f51c78"},
+ {file = "black-22.6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e439798f819d49ba1c0bd9664427a05aab79bfba777a6db94fd4e56fae0cb849"},
+ {file = "black-22.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:187d96c5e713f441a5829e77120c269b6514418f4513a390b0499b0987f2ff1c"},
+ {file = "black-22.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:074458dc2f6e0d3dab7928d4417bb6957bb834434516f21514138437accdbe90"},
+ {file = "black-22.6.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a218d7e5856f91d20f04e931b6f16d15356db1c846ee55f01bac297a705ca24f"},
+ {file = "black-22.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:568ac3c465b1c8b34b61cd7a4e349e93f91abf0f9371eda1cf87194663ab684e"},
+ {file = "black-22.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6c1734ab264b8f7929cef8ae5f900b85d579e6cbfde09d7387da8f04771b51c6"},
+ {file = "black-22.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9a3ac16efe9ec7d7381ddebcc022119794872abce99475345c5a61aa18c45ad"},
+ {file = "black-22.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:b9fd45787ba8aa3f5e0a0a98920c1012c884622c6c920dbe98dbd05bc7c70fbf"},
+ {file = "black-22.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7ba9be198ecca5031cd78745780d65a3f75a34b2ff9be5837045dce55db83d1c"},
+ {file = "black-22.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a3db5b6409b96d9bd543323b23ef32a1a2b06416d525d27e0f67e74f1446c8f2"},
+ {file = "black-22.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:560558527e52ce8afba936fcce93a7411ab40c7d5fe8c2463e279e843c0328ee"},
+ {file = "black-22.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b154e6bbde1e79ea3260c4b40c0b7b3109ffcdf7bc4ebf8859169a6af72cd70b"},
+ {file = "black-22.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:4af5bc0e1f96be5ae9bd7aaec219c901a94d6caa2484c21983d043371c733fc4"},
+ {file = "black-22.6.0-py3-none-any.whl", hash = "sha256:ac609cf8ef5e7115ddd07d85d988d074ed00e10fbc3445aee393e70164a2219c"},
+ {file = "black-22.6.0.tar.gz", hash = "sha256:6c6d39e28aed379aec40da1c65434c77d75e65bb59a1e1c283de545fb4e7c6c9"},
+]
cerberus = [
{file = "Cerberus-1.3.4.tar.gz", hash = "sha256:d1b21b3954b2498d9a79edf16b3170a3ac1021df88d197dc2ce5928ba519237c"},
]
@@ -721,6 +1024,49 @@ colorama = [
{file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"},
{file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"},
]
+coverage = [
+ {file = "coverage-6.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a9032f9b7d38bdf882ac9f66ebde3afb8145f0d4c24b2e600bc4c6304aafb87e"},
+ {file = "coverage-6.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e0524adb49c716ca763dbc1d27bedce36b14f33e6b8af6dba56886476b42957c"},
+ {file = "coverage-6.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4548be38a1c810d79e097a38107b6bf2ff42151900e47d49635be69943763d8"},
+ {file = "coverage-6.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f23876b018dfa5d3e98e96f5644b109090f16a4acb22064e0f06933663005d39"},
+ {file = "coverage-6.4.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fe75dcfcb889b6800f072f2af5a331342d63d0c1b3d2bf0f7b4f6c353e8c9c0"},
+ {file = "coverage-6.4.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:2f8553878a24b00d5ab04b7a92a2af50409247ca5c4b7a2bf4eabe94ed20d3ee"},
+ {file = "coverage-6.4.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:d774d9e97007b018a651eadc1b3970ed20237395527e22cbeb743d8e73e0563d"},
+ {file = "coverage-6.4.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d56f105592188ce7a797b2bd94b4a8cb2e36d5d9b0d8a1d2060ff2a71e6b9bbc"},
+ {file = "coverage-6.4.2-cp310-cp310-win32.whl", hash = "sha256:d230d333b0be8042ac34808ad722eabba30036232e7a6fb3e317c49f61c93386"},
+ {file = "coverage-6.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:5ef42e1db047ca42827a85e34abe973971c635f83aed49611b7f3ab49d0130f0"},
+ {file = "coverage-6.4.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:25b7ec944f114f70803d6529394b64f8749e93cbfac0fe6c5ea1b7e6c14e8a46"},
+ {file = "coverage-6.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bb00521ab4f99fdce2d5c05a91bddc0280f0afaee0e0a00425e28e209d4af07"},
+ {file = "coverage-6.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2dff52b3e7f76ada36f82124703f4953186d9029d00d6287f17c68a75e2e6039"},
+ {file = "coverage-6.4.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:147605e1702d996279bb3cc3b164f408698850011210d133a2cb96a73a2f7996"},
+ {file = "coverage-6.4.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:422fa44070b42fef9fb8dabd5af03861708cdd6deb69463adc2130b7bf81332f"},
+ {file = "coverage-6.4.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:8af6c26ba8df6338e57bedbf916d76bdae6308e57fc8f14397f03b5da8622b4e"},
+ {file = "coverage-6.4.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5336e0352c0b12c7e72727d50ff02557005f79a0b8dcad9219c7c4940a930083"},
+ {file = "coverage-6.4.2-cp37-cp37m-win32.whl", hash = "sha256:0f211df2cba951ffcae210ee00e54921ab42e2b64e0bf2c0befc977377fb09b7"},
+ {file = "coverage-6.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:a13772c19619118903d65a91f1d5fea84be494d12fd406d06c849b00d31bf120"},
+ {file = "coverage-6.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f7bd0ffbcd03dc39490a1f40b2669cc414fae0c4e16b77bb26806a4d0b7d1452"},
+ {file = "coverage-6.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0895ea6e6f7f9939166cc835df8fa4599e2d9b759b02d1521b574e13b859ac32"},
+ {file = "coverage-6.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4e7ced84a11c10160c0697a6cc0b214a5d7ab21dfec1cd46e89fbf77cc66fae"},
+ {file = "coverage-6.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80db4a47a199c4563d4a25919ff29c97c87569130375beca3483b41ad5f698e8"},
+ {file = "coverage-6.4.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3def6791adf580d66f025223078dc84c64696a26f174131059ce8e91452584e1"},
+ {file = "coverage-6.4.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4f89d8e03c8a3757aae65570d14033e8edf192ee9298303db15955cadcff0c63"},
+ {file = "coverage-6.4.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6d0b48aff8e9720bdec315d67723f0babd936a7211dc5df453ddf76f89c59933"},
+ {file = "coverage-6.4.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2b20286c2b726f94e766e86a3fddb7b7e37af5d0c635bdfa7e4399bc523563de"},
+ {file = "coverage-6.4.2-cp38-cp38-win32.whl", hash = "sha256:d714af0bdba67739598849c9f18efdcc5a0412f4993914a0ec5ce0f1e864d783"},
+ {file = "coverage-6.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:5f65e5d3ff2d895dab76b1faca4586b970a99b5d4b24e9aafffc0ce94a6022d6"},
+ {file = "coverage-6.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a697977157adc052284a7160569b36a8bbec09db3c3220642e6323b47cec090f"},
+ {file = "coverage-6.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c77943ef768276b61c96a3eb854eba55633c7a3fddf0a79f82805f232326d33f"},
+ {file = "coverage-6.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54d8d0e073a7f238f0666d3c7c0d37469b2aa43311e4024c925ee14f5d5a1cbe"},
+ {file = "coverage-6.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f22325010d8824594820d6ce84fa830838f581a7fd86a9235f0d2ed6deb61e29"},
+ {file = "coverage-6.4.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24b04d305ea172ccb21bee5bacd559383cba2c6fcdef85b7701cf2de4188aa55"},
+ {file = "coverage-6.4.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:866ebf42b4c5dbafd64455b0a1cd5aa7b4837a894809413b930026c91e18090b"},
+ {file = "coverage-6.4.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e36750fbbc422c1c46c9d13b937ab437138b998fe74a635ec88989afb57a3978"},
+ {file = "coverage-6.4.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:79419370d6a637cb18553ecb25228893966bd7935a9120fa454e7076f13b627c"},
+ {file = "coverage-6.4.2-cp39-cp39-win32.whl", hash = "sha256:b5e28db9199dd3833cc8a07fa6cf429a01227b5d429facb56eccd765050c26cd"},
+ {file = "coverage-6.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:edfdabe7aa4f97ed2b9dd5dde52d2bb29cb466993bb9d612ddd10d0085a683cf"},
+ {file = "coverage-6.4.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:e2618cb2cf5a7cc8d698306e42ebcacd02fb7ef8cfc18485c59394152c70be97"},
+ {file = "coverage-6.4.2.tar.gz", hash = "sha256:6c3ccfe89c36f3e5b9837b9ee507472310164f352c9fe332120b764c9d60adbe"},
+]
ecdsa = [
{file = "ecdsa-0.17.0-py2.py3-none-any.whl", hash = "sha256:5cf31d5b33743abe0dfc28999036c849a69d548f994b535e527ee3cb7f3ef676"},
{file = "ecdsa-0.17.0.tar.gz", hash = "sha256:b9f500bb439e4153d0330610f5d26baaf18d17b8ced1bc54410d189385ea68aa"},
@@ -741,29 +1087,48 @@ h11 = [
{file = "h11-0.12.0.tar.gz", hash = "sha256:47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042"},
]
httpcore = [
- {file = "httpcore-0.13.7-py3-none-any.whl", hash = "sha256:369aa481b014cf046f7067fddd67d00560f2f00426e79569d99cb11245134af0"},
- {file = "httpcore-0.13.7.tar.gz", hash = "sha256:036f960468759e633574d7c121afba48af6419615d36ab8ede979f1ad6276fa3"},
+ {file = "httpcore-0.15.0-py3-none-any.whl", hash = "sha256:1105b8b73c025f23ff7c36468e4432226cbb959176eab66864b8e31c4ee27fa6"},
+ {file = "httpcore-0.15.0.tar.gz", hash = "sha256:18b68ab86a3ccf3e7dc0f43598eaddcf472b602aba29f9aa6ab85fe2ada3980b"},
]
httptools = [
- {file = "httptools-0.2.0-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:79dbc21f3612a78b28384e989b21872e2e3cf3968532601544696e4ed0007ce5"},
- {file = "httptools-0.2.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:78d03dd39b09c99ec917d50189e6743adbfd18c15d5944392d2eabda688bf149"},
- {file = "httptools-0.2.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:a23166e5ae2775709cf4f7ad4c2048755ebfb272767d244e1a96d55ac775cca7"},
- {file = "httptools-0.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:3ab1f390d8867f74b3b5ee2a7ecc9b8d7f53750bd45714bf1cb72a953d7dfa77"},
- {file = "httptools-0.2.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a7594f9a010cdf1e16a58b3bf26c9da39bbf663e3b8d46d39176999d71816658"},
- {file = "httptools-0.2.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:01b392a166adcc8bc2f526a939a8aabf89fe079243e1543fd0e7dc1b58d737cb"},
- {file = "httptools-0.2.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:80ffa04fe8c8dfacf6e4cef8277347d35b0442c581f5814f3b0cf41b65c43c6e"},
- {file = "httptools-0.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d5682eeb10cca0606c4a8286a3391d4c3c5a36f0c448e71b8bd05be4e1694bfb"},
- {file = "httptools-0.2.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:a289c27ccae399a70eacf32df9a44059ca2ba4ac444604b00a19a6c1f0809943"},
- {file = "httptools-0.2.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:813871f961edea6cb2fe312f2d9b27d12a51ba92545380126f80d0de1917ea15"},
- {file = "httptools-0.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:cc9be041e428c10f8b6ab358c6b393648f9457094e1dcc11b4906026d43cd380"},
- {file = "httptools-0.2.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b08d00d889a118f68f37f3c43e359aab24ee29eb2e3fe96d64c6a2ba8b9d6557"},
- {file = "httptools-0.2.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fd3b8905e21431ad306eeaf56644a68fdd621bf8f3097eff54d0f6bdf7262065"},
- {file = "httptools-0.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:200fc1cdf733a9ff554c0bb97a4047785cfaad9875307d6087001db3eb2b417f"},
- {file = "httptools-0.2.0.tar.gz", hash = "sha256:94505026be56652d7a530ab03d89474dc6021019d6b8682281977163b3471ea0"},
+ {file = "httptools-0.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fcddfe70553be717d9745990dfdb194e22ee0f60eb8f48c0794e7bfeda30d2d5"},
+ {file = "httptools-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1ee0b459257e222b878a6c09ccf233957d3a4dcb883b0847640af98d2d9aac23"},
+ {file = "httptools-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceafd5e960b39c7e0d160a1936b68eb87c5e79b3979d66e774f0c77d4d8faaed"},
+ {file = "httptools-0.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fdb9f9ed79bc6f46b021b3319184699ba1a22410a82204e6e89c774530069683"},
+ {file = "httptools-0.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:abe829275cdd4174b4c4e65ad718715d449e308d59793bf3a931ee1bf7e7b86c"},
+ {file = "httptools-0.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7af6bdbd21a2a25d6784f6d67f44f5df33ef39b6159543b9f9064d365c01f919"},
+ {file = "httptools-0.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:5d1fe6b6661022fd6cac541f54a4237496b246e6f1c0a6b41998ee08a1135afe"},
+ {file = "httptools-0.4.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:48e48530d9b995a84d1d89ae6b3ec4e59ea7d494b150ac3bbc5e2ac4acce92cd"},
+ {file = "httptools-0.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a113789e53ac1fa26edf99856a61e4c493868e125ae0dd6354cf518948fbbd5c"},
+ {file = "httptools-0.4.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8e2eb957787cbb614a0f006bfc5798ff1d90ac7c4dd24854c84edbdc8c02369e"},
+ {file = "httptools-0.4.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:7ee9f226acab9085037582c059d66769862706e8e8cd2340470ceb8b3850873d"},
+ {file = "httptools-0.4.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:701e66b59dd21a32a274771238025d58db7e2b6ecebbab64ceff51b8e31527ae"},
+ {file = "httptools-0.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6a1a7dfc1f9c78a833e2c4904757a0f47ce25d08634dd2a52af394eefe5f9777"},
+ {file = "httptools-0.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:903f739c9fb78dab8970b0f3ea51f21955b24b45afa77b22ff0e172fc11ef111"},
+ {file = "httptools-0.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54bbd295f031b866b9799dd39cb45deee81aca036c9bff9f58ca06726f6494f1"},
+ {file = "httptools-0.4.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3194f6d6443befa8d4db16c1946b2fc428a3ceb8ab32eb6f09a59f86104dc1a0"},
+ {file = "httptools-0.4.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cd1295f52971097f757edfbfce827b6dbbfb0f7a74901ee7d4933dff5ad4c9af"},
+ {file = "httptools-0.4.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:20a45bcf22452a10fa8d58b7dbdb474381f6946bf5b8933e3662d572bc61bae4"},
+ {file = "httptools-0.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d1f27bb0f75bef722d6e22dc609612bfa2f994541621cd2163f8c943b6463dfe"},
+ {file = "httptools-0.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7f7bfb74718f52d5ed47d608d507bf66d3bc01d4a8b3e6dd7134daaae129357b"},
+ {file = "httptools-0.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a522d12e2ddbc2e91842ffb454a1aeb0d47607972c7d8fc88bd0838d97fb8a2a"},
+ {file = "httptools-0.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2db44a0b294d317199e9f80123e72c6b005c55b625b57fae36de68670090fa48"},
+ {file = "httptools-0.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c286985b5e194ca0ebb2908d71464b9be8f17cc66d6d3e330e8d5407248f56ad"},
+ {file = "httptools-0.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d3a4e165ca6204f34856b765d515d558dc84f1352033b8721e8d06c3e44930c3"},
+ {file = "httptools-0.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:72aa3fbe636b16d22e04b5a9d24711b043495e0ecfe58080addf23a1a37f3409"},
+ {file = "httptools-0.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:9967d9758df505975913304c434cb9ab21e2c609ad859eb921f2f615a038c8de"},
+ {file = "httptools-0.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f72b5d24d6730035128b238decdc4c0f2104b7056a7ca55cf047c106842ec890"},
+ {file = "httptools-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:29bf97a5c532da9c7a04de2c7a9c31d1d54f3abd65a464119b680206bbbb1055"},
+ {file = "httptools-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98993805f1e3cdb53de4eed02b55dcc953cdf017ba7bbb2fd89226c086a6d855"},
+ {file = "httptools-0.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d9b90bf58f3ba04e60321a23a8723a1ff2a9377502535e70495e5ada8e6e6722"},
+ {file = "httptools-0.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a99346ebcb801b213c591540837340bdf6fd060a8687518d01c607d338b7424"},
+ {file = "httptools-0.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:645373c070080e632480a3d251d892cb795be3d3a15f86975d0f1aca56fd230d"},
+ {file = "httptools-0.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:34d2903dd2a3dd85d33705b6fde40bf91fc44411661283763fd0746723963c83"},
+ {file = "httptools-0.4.0.tar.gz", hash = "sha256:2c9a930c378b3d15d6b695fb95ebcff81a7395b4f9775c4f10a076beb0b2c1ff"},
]
httpx = [
- {file = "httpx-0.19.0-py3-none-any.whl", hash = "sha256:9bd728a6c5ec0a9e243932a9983d57d3cc4a87bb4f554e1360fce407f78f9435"},
- {file = "httpx-0.19.0.tar.gz", hash = "sha256:92ecd2c00c688b529eda11cedb15161eaf02dee9116712f621c70d9a40b2cdd0"},
+ {file = "httpx-0.23.0-py3-none-any.whl", hash = "sha256:42974f577483e1e932c3cdc3cd2303e883cbfba17fe228b0f63589764d7b9c4b"},
+ {file = "httpx-0.23.0.tar.gz", hash = "sha256:f28eac771ec9eb4866d3fb4ab65abd42d38c424739e80c08d8d20570de60b0ef"},
]
idna = [
{file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"},
@@ -773,6 +1138,14 @@ importlib-metadata = [
{file = "importlib_metadata-4.8.1-py3-none-any.whl", hash = "sha256:b618b6d2d5ffa2f16add5697cf57a46c76a56229b0ed1c438322e4e95645bd15"},
{file = "importlib_metadata-4.8.1.tar.gz", hash = "sha256:f284b3e11256ad1e5d03ab86bb2ccd6f5339688ff17a4d797a0fe7df326f23b1"},
]
+iniconfig = [
+ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
+ {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
+]
+isort = [
+ {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"},
+ {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"},
+]
jinja2 = [
{file = "Jinja2-3.0.1-py3-none-any.whl", hash = "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4"},
{file = "Jinja2-3.0.1.tar.gz", hash = "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"},
@@ -857,13 +1230,62 @@ markupsafe = [
{file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
]
marshmallow = [
- {file = "marshmallow-3.13.0-py2.py3-none-any.whl", hash = "sha256:dd4724335d3c2b870b641ffe4a2f8728a1380cd2e7e2312756715ffeaa82b842"},
- {file = "marshmallow-3.13.0.tar.gz", hash = "sha256:c67929438fd73a2be92128caa0325b1b5ed8b626d91a094d2f7f2771bf1f1c0e"},
+ {file = "marshmallow-3.17.0-py3-none-any.whl", hash = "sha256:00040ab5ea0c608e8787137627a8efae97fabd60552a05dc889c888f814e75eb"},
+ {file = "marshmallow-3.17.0.tar.gz", hash = "sha256:635fb65a3285a31a30f276f30e958070f5214c7196202caa5c7ecf28f5274bc7"},
+]
+mock = [
+ {file = "mock-4.0.3-py3-none-any.whl", hash = "sha256:122fcb64ee37cfad5b3f48d7a7d51875d7031aaf3d8be7c42e2bee25044eee62"},
+ {file = "mock-4.0.3.tar.gz", hash = "sha256:7d3fbbde18228f4ff2f1f119a45cdffa458b4c0dee32eb4d2bb2f82554bac7bc"},
+]
+mypy = [
+ {file = "mypy-0.971-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f2899a3cbd394da157194f913a931edfd4be5f274a88041c9dc2d9cdcb1c315c"},
+ {file = "mypy-0.971-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:98e02d56ebe93981c41211c05adb630d1d26c14195d04d95e49cd97dbc046dc5"},
+ {file = "mypy-0.971-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:19830b7dba7d5356d3e26e2427a2ec91c994cd92d983142cbd025ebe81d69cf3"},
+ {file = "mypy-0.971-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:02ef476f6dcb86e6f502ae39a16b93285fef97e7f1ff22932b657d1ef1f28655"},
+ {file = "mypy-0.971-cp310-cp310-win_amd64.whl", hash = "sha256:25c5750ba5609a0c7550b73a33deb314ecfb559c350bb050b655505e8aed4103"},
+ {file = "mypy-0.971-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d3348e7eb2eea2472db611486846742d5d52d1290576de99d59edeb7cd4a42ca"},
+ {file = "mypy-0.971-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3fa7a477b9900be9b7dd4bab30a12759e5abe9586574ceb944bc29cddf8f0417"},
+ {file = "mypy-0.971-cp36-cp36m-win_amd64.whl", hash = "sha256:2ad53cf9c3adc43cf3bea0a7d01a2f2e86db9fe7596dfecb4496a5dda63cbb09"},
+ {file = "mypy-0.971-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:855048b6feb6dfe09d3353466004490b1872887150c5bb5caad7838b57328cc8"},
+ {file = "mypy-0.971-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:23488a14a83bca6e54402c2e6435467a4138785df93ec85aeff64c6170077fb0"},
+ {file = "mypy-0.971-cp37-cp37m-win_amd64.whl", hash = "sha256:4b21e5b1a70dfb972490035128f305c39bc4bc253f34e96a4adf9127cf943eb2"},
+ {file = "mypy-0.971-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:9796a2ba7b4b538649caa5cecd398d873f4022ed2333ffde58eaf604c4d2cb27"},
+ {file = "mypy-0.971-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a361d92635ad4ada1b1b2d3630fc2f53f2127d51cf2def9db83cba32e47c856"},
+ {file = "mypy-0.971-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b793b899f7cf563b1e7044a5c97361196b938e92f0a4343a5d27966a53d2ec71"},
+ {file = "mypy-0.971-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d1ea5d12c8e2d266b5fb8c7a5d2e9c0219fedfeb493b7ed60cd350322384ac27"},
+ {file = "mypy-0.971-cp38-cp38-win_amd64.whl", hash = "sha256:23c7ff43fff4b0df93a186581885c8512bc50fc4d4910e0f838e35d6bb6b5e58"},
+ {file = "mypy-0.971-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1f7656b69974a6933e987ee8ffb951d836272d6c0f81d727f1d0e2696074d9e6"},
+ {file = "mypy-0.971-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d2022bfadb7a5c2ef410d6a7c9763188afdb7f3533f22a0a32be10d571ee4bbe"},
+ {file = "mypy-0.971-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef943c72a786b0f8d90fd76e9b39ce81fb7171172daf84bf43eaf937e9f220a9"},
+ {file = "mypy-0.971-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d744f72eb39f69312bc6c2abf8ff6656973120e2eb3f3ec4f758ed47e414a4bf"},
+ {file = "mypy-0.971-cp39-cp39-win_amd64.whl", hash = "sha256:77a514ea15d3007d33a9e2157b0ba9c267496acf12a7f2b9b9f8446337aac5b0"},
+ {file = "mypy-0.971-py3-none-any.whl", hash = "sha256:0d054ef16b071149917085f51f89555a576e2618d5d9dd70bd6eea6410af3ac9"},
+ {file = "mypy-0.971.tar.gz", hash = "sha256:40b0f21484238269ae6a57200c807d80debc6459d444c0489a102d7c6a75fa56"},
+]
+mypy-extensions = [
+ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
+ {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
]
outcome = [
{file = "outcome-1.1.0-py2.py3-none-any.whl", hash = "sha256:c7dd9375cfd3c12db9801d080a3b63d4b0a261aa996c4c13152380587288d958"},
{file = "outcome-1.1.0.tar.gz", hash = "sha256:e862f01d4e626e63e8f92c38d1f8d5546d3f9cce989263c521b2e7990d186967"},
]
+packaging = [
+ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
+ {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
+]
+pathspec = [
+ {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"},
+ {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"},
+]
+platformdirs = [
+ {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"},
+ {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"},
+]
+pluggy = [
+ {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
+ {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"},
+]
psycopg2-binary = [
{file = "psycopg2-binary-2.9.1.tar.gz", hash = "sha256:b0221ca5a9837e040ebf61f48899926b5783668b7807419e4adae8175a31f773"},
{file = "psycopg2_binary-2.9.1-cp310-cp310-macosx_10_14_x86_64.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:24b0b6688b9f31a911f2361fe818492650795c9e5d3a1bc647acbd7440142a4f"},
@@ -902,6 +1324,10 @@ psycopg2-binary = [
{file = "psycopg2_binary-2.9.1-cp39-cp39-win32.whl", hash = "sha256:0b7dae87f0b729922e06f85f667de7bf16455d411971b2043bbd9577af9d1975"},
{file = "psycopg2_binary-2.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:b4d7679a08fea64573c969f6994a2631908bb2c0e69a7235648642f3d2e39a68"},
]
+py = [
+ {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
+ {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
+]
pycparser = [
{file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
{file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
@@ -959,6 +1385,10 @@ pydantic = [
{file = "pydantic-1.8.2-py3-none-any.whl", hash = "sha256:fec866a0b59f372b7e776f2d7308511784dace622e0992a0b59ea3ccee0ae833"},
{file = "pydantic-1.8.2.tar.gz", hash = "sha256:26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b"},
]
+pyparsing = [
+ {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"},
+ {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"},
+]
pypng = [
{file = "pypng-0.0.21-py3-none-any.whl", hash = "sha256:76f8a1539ec56451da7ab7121f12a361969fe0f2d48d703d198ce2a99d6c5afd"},
]
@@ -969,6 +1399,18 @@ pyqrcode = [
pyscss = [
{file = "pyScss-1.3.7.tar.gz", hash = "sha256:f1df571569021a23941a538eb154405dde80bed35dc1ea7c5f3e18e0144746bf"},
]
+pytest = [
+ {file = "pytest-7.1.2-py3-none-any.whl", hash = "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c"},
+ {file = "pytest-7.1.2.tar.gz", hash = "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45"},
+]
+pytest-asyncio = [
+ {file = "pytest-asyncio-0.19.0.tar.gz", hash = "sha256:ac4ebf3b6207259750bc32f4c1d8fcd7e79739edbc67ad0c58dd150b1d072fed"},
+ {file = "pytest_asyncio-0.19.0-py3-none-any.whl", hash = "sha256:7a97e37cfe1ed296e2e84941384bdd37c376453912d397ed39293e0916f521fa"},
+]
+pytest-cov = [
+ {file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"},
+ {file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"},
+]
python-dotenv = [
{file = "python-dotenv-0.19.0.tar.gz", hash = "sha256:f521bc2ac9a8e03c736f62911605c5d83970021e3fa95b37d769e2bbbe9b6172"},
{file = "python_dotenv-0.19.0-py2.py3-none-any.whl", hash = "sha256:aae25dc1ebe97c420f50b81fb0e5c949659af713f31fdb63c749ca68748f34b1"},
@@ -1090,8 +1532,8 @@ sqlalchemy = [
{file = "SQLAlchemy-1.3.23.tar.gz", hash = "sha256:6fca33672578666f657c131552c4ef8979c1606e494f78cd5199742dfb26918b"},
]
sqlalchemy-aio = [
- {file = "sqlalchemy_aio-0.16.0-py2.py3-none-any.whl", hash = "sha256:f767320427c22c66fa5840a1f17f3261110a8ddc8560558f4fbf12d31a66b17b"},
- {file = "sqlalchemy_aio-0.16.0.tar.gz", hash = "sha256:7f77366f55d34891c87386dd0962a28b948b684e8ea5edb7daae4187c0b291bf"},
+ {file = "sqlalchemy_aio-0.17.0-py3-none-any.whl", hash = "sha256:3f4aa392c38f032d6734826a4138a0f02ed3122d442ed142be1e5964f2a33b60"},
+ {file = "sqlalchemy_aio-0.17.0.tar.gz", hash = "sha256:f531c7982662d71dfc0b117e77bb2ed544e25cd5361e76cf9f5208edcfb71f7b"},
]
sse-starlette = [
{file = "sse-starlette-0.6.2.tar.gz", hash = "sha256:1c0cc62cc7d021a386dc06a16a9ddc3e2861d19da6bc2e654e65cc111e820456"},
@@ -1100,6 +1542,40 @@ starlette = [
{file = "starlette-0.19.1-py3-none-any.whl", hash = "sha256:5a60c5c2d051f3a8eb546136aa0c9399773a689595e099e0877704d5888279bf"},
{file = "starlette-0.19.1.tar.gz", hash = "sha256:c6d21096774ecb9639acad41b86b7706e52ba3bf1dc13ea4ed9ad593d47e24c7"},
]
+tomli = [
+ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
+ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
+]
+typed-ast = [
+ {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"},
+ {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"},
+ {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"},
+ {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"},
+ {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"},
+ {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"},
+ {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"},
+ {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"},
+ {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"},
+ {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"},
+ {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"},
+ {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"},
+ {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"},
+ {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"},
+ {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"},
+ {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"},
+ {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"},
+ {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"},
+ {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"},
+ {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"},
+ {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"},
+ {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"},
+ {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"},
+ {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"},
+]
+types-protobuf = [
+ {file = "types-protobuf-3.19.22.tar.gz", hash = "sha256:d2b26861b0cb46a3c8669b0df507b7ef72e487da66d61f9f3576aa76ce028a83"},
+ {file = "types_protobuf-3.19.22-py3-none-any.whl", hash = "sha256:d291388678af91bb045fafa864f142dc4ac22f5d4cdca097c7d8d8a32fa9b3ab"},
+]
typing-extensions = [
{file = "typing_extensions-3.10.0.2-py2-none-any.whl", hash = "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7"},
{file = "typing_extensions-3.10.0.2-py3-none-any.whl", hash = "sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34"},
@@ -1131,6 +1607,10 @@ watchgod = [
{file = "watchgod-0.7-py3-none-any.whl", hash = "sha256:d6c1ea21df37847ac0537ca0d6c2f4cdf513562e95f77bb93abbcf05573407b7"},
{file = "watchgod-0.7.tar.gz", hash = "sha256:48140d62b0ebe9dd9cf8381337f06351e1f2e70b2203fa9c6eff4e572ca84f29"},
]
+websocket-client = [
+ {file = "websocket-client-1.3.3.tar.gz", hash = "sha256:d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1"},
+ {file = "websocket_client-1.3.3-py3-none-any.whl", hash = "sha256:5d55652dc1d0b3c734f044337d929aaf83f4f9138816ec680c1aefefb4dc4877"},
+]
websockets = [
{file = "websockets-10.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cd8c6f2ec24aedace251017bc7a414525171d4e6578f914acab9349362def4da"},
{file = "websockets-10.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:1f6b814cff6aadc4288297cb3a248614829c6e4ff5556593c44a115e9dd49939"},
@@ -1158,7 +1638,10 @@ websockets = [
{file = "websockets-10.0-cp39-cp39-win_amd64.whl", hash = "sha256:c5880442f5fc268f1ef6d37b2c152c114deccca73f48e3a8c48004d2f16f4567"},
{file = "websockets-10.0.tar.gz", hash = "sha256:c4fc9a1d242317892590abe5b61a9127f1a61740477bfb121743f290b8054002"},
]
-win32-setctime = []
+win32-setctime = [
+ {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"},
+ {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"},
+]
zipp = [
{file = "zipp-3.5.0-py3-none-any.whl", hash = "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3"},
{file = "zipp-3.5.0.tar.gz", hash = "sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4"},
diff --git a/pyproject.toml b/pyproject.toml
index 5c4bc7a05..1ae8c1fec 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -9,8 +9,8 @@ generate-setup-file = false
script = "build.py"
[tool.poetry.dependencies]
-python = "^3.9"
-aiofiles = "0.7.0"
+python = "^3.9 | ^3.8 | ^3.7"
+aiofiles = "0.8.0"
asgiref = "3.4.1"
attrs = "21.2.0"
bech32 = "1.2.0"
@@ -24,15 +24,15 @@ embit = "0.4.9"
environs = "9.3.3"
fastapi = "0.78.0"
h11 = "0.12.0"
-httpcore = "0.13.7"
-httptools = "0.2.0"
-httpx = "0.19.0"
+httpcore = "0.15.0"
+httptools = "0.4.0"
+httpx = "0.23.0"
idna = "3.2"
importlib-metadata = "4.8.1"
jinja2 = "3.0.1"
lnurl = "0.3.6"
markupsafe = "2.0.1"
-marshmallow = "3.13.0"
+marshmallow = "3.17.0"
outcome = "1.1.0"
psycopg2-binary = "2.9.1"
pycryptodomex = "3.14.1"
@@ -49,7 +49,7 @@ shortuuid = "1.0.1"
six = "1.16.0"
sniffio = "1.2.0"
sqlalchemy = "1.3.23"
-sqlalchemy-aio = "0.16.0"
+sqlalchemy-aio = "0.17.0"
sse-starlette = "0.6.2"
typing-extensions = "3.10.0.2"
uvicorn = "0.18.1"
@@ -59,8 +59,17 @@ websockets = "10.0"
zipp = "3.5.0"
loguru = "0.5.3"
cffi = "1.15.0"
+websocket-client = "1.3.3"
[tool.poetry.dev-dependencies]
+isort = "^5.10.1"
+pytest = "^7.1.2"
+mock = "^4.0.3"
+black = "^22.6.0"
+pytest-asyncio = "^0.19.0"
+pytest-cov = "^3.0.0"
+mypy = "^0.971"
+types-protobuf = "^3.19.22"
[build-system]
requires = ["poetry-core>=1.0.0"]
@@ -68,3 +77,20 @@ build-backend = "poetry.core.masonry.api"
[tool.poetry.scripts]
lnbits = "lnbits.server:main"
+
+[tool.isort]
+profile = "black"
+
+[tool.mypy]
+ignore_missing_imports = "True"
+files = "lnbits"
+exclude = """(?x)(
+ ^lnbits/extensions.
+ | ^lnbits/wallets/lnd_grpc_files.
+)"""
+
+[tool.pytest.ini_options]
+addopts = "--durations=1 -s --cov=lnbits --cov-report=xml"
+testpaths = [
+ "tests"
+]
diff --git a/pytest.ini b/pytest.ini
deleted file mode 100644
index 33eea0522..000000000
--- a/pytest.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[pytest]
-filterwarnings =
- ignore::pytest.PytestCacheWarning
diff --git a/requirements.txt b/requirements.txt
index 23d428e54..697ea1d4d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -50,3 +50,4 @@ uvicorn==0.18.2
uvloop==0.16.0
watchfiles==0.16.0
websockets==10.3
+websocket-client==1.3.3
diff --git a/tests/conftest.py b/tests/conftest.py
index adb1fa362..1e719c76a 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,19 +1,17 @@
import asyncio
-import pytest_asyncio
+from typing import Tuple
+import pytest_asyncio
from httpx import AsyncClient
+
from lnbits.app import create_app
from lnbits.commands import migrate_databases
-from lnbits.settings import HOST, PORT
-
-from lnbits.core.views.api import api_payments_create_invoice, CreateInvoiceData
-
from lnbits.core.crud import create_account, create_wallet, get_wallet
-from tests.helpers import credit_wallet, get_random_invoice_data
-
+from lnbits.core.models import BalanceCheck, Payment, User, Wallet
+from lnbits.core.views.api import CreateInvoiceData, api_payments_create_invoice
from lnbits.db import Database
-from lnbits.core.models import User, Wallet, Payment, BalanceCheck
-from typing import Tuple
+from lnbits.settings import HOST, PORT
+from tests.helpers import credit_wallet, get_random_invoice_data
@pytest_asyncio.fixture(scope="session")
@@ -122,12 +120,8 @@ async def adminkey_headers_to(to_wallet):
@pytest_asyncio.fixture(scope="session")
async def invoice(to_wallet):
- wallet = to_wallet
data = await get_random_invoice_data()
invoiceData = CreateInvoiceData(**data)
- stuff_lock = asyncio.Lock()
- async with stuff_lock:
- invoice = await api_payments_create_invoice(invoiceData, wallet)
- await asyncio.sleep(1)
+ invoice = await api_payments_create_invoice(invoiceData, to_wallet)
yield invoice
del invoice
diff --git a/tests/core/views/test_api.py b/tests/core/views/test_api.py
index dfd2b32ae..9dd13004c 100644
--- a/tests/core/views/test_api.py
+++ b/tests/core/views/test_api.py
@@ -1,10 +1,20 @@
+import hashlib
+from binascii import hexlify
+
import pytest
import pytest_asyncio
+
+from lnbits import bolt11
from lnbits.core.crud import get_wallet
-from lnbits.core.views.api import api_payment
+from lnbits.core.views.api import (
+ CreateInvoiceData,
+ api_payment,
+ api_payments_create_invoice,
+)
from ...helpers import get_random_invoice_data
+
# check if the client is working
@pytest.mark.asyncio
async def test_core_views_generic(client):
@@ -179,3 +189,21 @@ async def test_api_payment_with_key(invoice, inkey_headers_from):
assert type(response) == dict
assert response["paid"] == True
assert "details" in response
+
+
+# check POST /api/v1/payments: invoice creation with a description hash
+@pytest.mark.asyncio
+async def test_create_invoice_with_description_hash(client, inkey_headers_to):
+ data = await get_random_invoice_data()
+ descr_hash = hashlib.sha256("asdasdasd".encode("utf-8")).hexdigest()
+ data["description_hash"] = "asdasdasd".encode("utf-8").hex()
+
+ response = await client.post(
+ "/api/v1/payments", json=data, headers=inkey_headers_to
+ )
+ invoice = response.json()
+
+ invoice_bolt11 = bolt11.decode(invoice["payment_request"])
+ assert invoice_bolt11.description_hash == descr_hash
+ assert invoice_bolt11.description is None
+ return invoice
diff --git a/tests/core/views/test_generic.py b/tests/core/views/test_generic.py
index 6e6354d1b..4300b78b9 100644
--- a/tests/core/views/test_generic.py
+++ b/tests/core/views/test_generic.py
@@ -1,5 +1,6 @@
import pytest
import pytest_asyncio
+
from tests.conftest import client
diff --git a/tests/core/views/test_public_api.py b/tests/core/views/test_public_api.py
index d9c253c2b..6ebaeabd3 100644
--- a/tests/core/views/test_public_api.py
+++ b/tests/core/views/test_public_api.py
@@ -1,7 +1,9 @@
import pytest
import pytest_asyncio
+
from lnbits.core.crud import get_wallet
+
# check if the client is working
@pytest.mark.asyncio
async def test_core_views_generic(client):
diff --git a/tests/extensions/bleskomat/conftest.py b/tests/extensions/bleskomat/conftest.py
index b4ad0bfc0..13be2b579 100644
--- a/tests/extensions/bleskomat/conftest.py
+++ b/tests/extensions/bleskomat/conftest.py
@@ -1,17 +1,19 @@
import json
+import secrets
+
import pytest
import pytest_asyncio
-import secrets
+
from lnbits.core.crud import create_account, create_wallet
from lnbits.extensions.bleskomat.crud import create_bleskomat, create_bleskomat_lnurl
-from lnbits.extensions.bleskomat.models import CreateBleskomat
+from lnbits.extensions.bleskomat.exchange_rates import exchange_rate_providers
from lnbits.extensions.bleskomat.helpers import (
generate_bleskomat_lnurl_secret,
generate_bleskomat_lnurl_signature,
prepare_lnurl_params,
query_to_signing_payload,
)
-from lnbits.extensions.bleskomat.exchange_rates import exchange_rate_providers
+from lnbits.extensions.bleskomat.models import CreateBleskomat
exchange_rate_providers["dummy"] = {
"name": "dummy",
diff --git a/tests/extensions/bleskomat/test_lnurl_api.py b/tests/extensions/bleskomat/test_lnurl_api.py
index 0189e119b..0100a62da 100644
--- a/tests/extensions/bleskomat/test_lnurl_api.py
+++ b/tests/extensions/bleskomat/test_lnurl_api.py
@@ -1,16 +1,18 @@
+import secrets
+
import pytest
import pytest_asyncio
-import secrets
+
from lnbits.core.crud import get_wallet
-from lnbits.settings import HOST, PORT
from lnbits.extensions.bleskomat.crud import get_bleskomat_lnurl
from lnbits.extensions.bleskomat.helpers import (
generate_bleskomat_lnurl_signature,
query_to_signing_payload,
)
+from lnbits.settings import HOST, PORT
from tests.conftest import client
-from tests.helpers import credit_wallet
from tests.extensions.bleskomat.conftest import bleskomat, lnurl
+from tests.helpers import credit_wallet
from tests.mocks import WALLET
diff --git a/tests/helpers.py b/tests/helpers.py
index 0ba1963df..7be26ce37 100644
--- a/tests/helpers.py
+++ b/tests/helpers.py
@@ -1,7 +1,8 @@
import hashlib
-import secrets
import random
+import secrets
import string
+
from lnbits.core.crud import create_payment
diff --git a/tests/mocks.py b/tests/mocks.py
index c99691cbc..65e8440a6 100644
--- a/tests/mocks.py
+++ b/tests/mocks.py
@@ -1,12 +1,8 @@
from mock import AsyncMock
-from lnbits import bolt11
-from lnbits.wallets.base import (
- StatusResponse,
- PaymentResponse,
- PaymentStatus,
-)
-from lnbits.settings import WALLET
+from lnbits import bolt11
+from lnbits.settings import WALLET
+from lnbits.wallets.base import PaymentResponse, PaymentStatus, StatusResponse
from lnbits.wallets.fake import FakeWallet
from .helpers import get_random_string
diff --git a/tools/conv.py b/tools/conv.py
index b93bcfbea..10e8c9cdd 100644
--- a/tools/conv.py
+++ b/tools/conv.py
@@ -1,6 +1,7 @@
import argparse
import os
import sqlite3
+from typing import List
import psycopg2
from environs import Env # type: ignore
@@ -110,627 +111,59 @@ def insert_to_pg(query, data):
connection.close()
-def migrate_core(sqlite_db_file):
- sq = get_sqlite_cursor(sqlite_db_file)
+def migrate_core(file: str, exclude_tables: List[str] = []):
+ print(f"Migrating core: {file}")
+ migrate_db(file, "public", exclude_tables)
+ print("✅ Migrated core")
- # ACCOUNTS
- res = sq.execute("SELECT * FROM accounts;")
- q = f"INSERT INTO public.accounts (id, email, pass) VALUES (%s, %s, %s);"
- insert_to_pg(q, res.fetchall())
- # WALLETS
- res = sq.execute("SELECT * FROM wallets;")
- q = f'INSERT INTO public.wallets (id, name, "user", adminkey, inkey) VALUES (%s, %s, %s, %s, %s);'
- insert_to_pg(q, res.fetchall())
+def migrate_ext(file: str):
+ filename = os.path.basename(file)
+ schema = filename.replace("ext_", "").split(".")[0]
+ print(f"Migrating ext: {file}.{schema}")
+ migrate_db(file, schema)
+ print(f"✅ Migrated ext: {schema}")
- # API PAYMENTS
- res = sq.execute("SELECT * FROM apipayments;")
- q = f"""
- INSERT INTO public.apipayments(
- checking_id, amount, fee, wallet, pending, memo, "time", hash, preimage, bolt11, extra, webhook, webhook_status)
- VALUES (%s, %s, %s, %s, %s::boolean, %s, to_timestamp(%s), %s, %s, %s, %s, %s, %s);
+
+def migrate_db(file: str, schema: str, exclude_tables: List[str] = []):
+ sq = get_sqlite_cursor(file)
+ tables = sq.execute(
+ """
+ SELECT name FROM sqlite_master
+ WHERE type='table' AND name not like 'sqlite?_%' escape '?'
"""
- insert_to_pg(q, res.fetchall())
+ ).fetchall()
- # BALANCE CHECK
- res = sq.execute("SELECT * FROM balance_check;")
- q = f"INSERT INTO public.balance_check(wallet, service, url) VALUES (%s, %s, %s);"
- insert_to_pg(q, res.fetchall())
+ for table in tables:
+ tableName = table[0]
+ if tableName in exclude_tables:
+ continue
- # BALANCE NOTIFY
- res = sq.execute("SELECT * FROM balance_notify;")
- q = f"INSERT INTO public.balance_notify(wallet, url) VALUES (%s, %s);"
- insert_to_pg(q, res.fetchall())
+ columns = sq.execute(f"PRAGMA table_info({tableName})").fetchall()
+ q = build_insert_query(schema, tableName, columns)
- # EXTENSIONS
- res = sq.execute("SELECT * FROM extensions;")
- q = f'INSERT INTO public.extensions("user", extension, active) VALUES (%s, %s, %s::boolean);'
- insert_to_pg(q, res.fetchall())
-
- print("Migrated: core")
-
-
-def migrate_ext(sqlite_db_file, schema, ignore_missing=True):
-
- # skip this file it has been moved to ext_lnurldevices.sqlite3
- if sqlite_db_file == "data/ext_lnurlpos.sqlite3":
- return
-
- print(f"Migrating {sqlite_db_file}.{schema}")
- sq = get_sqlite_cursor(sqlite_db_file)
- if schema == "bleskomat":
- # BLESKOMAT LNURLS
- res = sq.execute("SELECT * FROM bleskomat_lnurls;")
- q = f"""
- INSERT INTO bleskomat.bleskomat_lnurls(
- id, bleskomat, wallet, hash, tag, params, api_key_id, initial_uses, remaining_uses, created_time, updated_time)
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
-
- # BLESKOMATS
- res = sq.execute("SELECT * FROM bleskomats;")
- q = f"""
- INSERT INTO bleskomat.bleskomats(
- id, wallet, api_key_id, api_key_secret, api_key_encoding, name, fiat_currency, exchange_rate_provider, fee)
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "captcha":
- # CAPTCHA
- res = sq.execute("SELECT * FROM captchas;")
- q = f"""
- INSERT INTO captcha.captchas(
- id, wallet, url, memo, description, amount, "time", remembers, extras)
- VALUES (%s, %s, %s, %s, %s, %s, to_timestamp(%s), %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "copilot":
- # OLD COPILOTS
- res = sq.execute("SELECT * FROM copilots;")
- q = f"""
- INSERT INTO copilot.copilots(
- id, "user", title, lnurl_toggle, wallet, animation1, animation2, animation3, animation1threshold, animation2threshold, animation3threshold, animation1webhook, animation2webhook, animation3webhook, lnurl_title, show_message, show_ack, show_price, amount_made, fullscreen_cam, iframe_url, "timestamp")
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
-
- # NEW COPILOTS
- q = f"""
- INSERT INTO copilot.newer_copilots(
- id, "user", title, lnurl_toggle, wallet, animation1, animation2, animation3, animation1threshold, animation2threshold, animation3threshold, animation1webhook, animation2webhook, animation3webhook, lnurl_title, show_message, show_ack, show_price, amount_made, fullscreen_cam, iframe_url, "timestamp")
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "events":
- # EVENTS
- res = sq.execute("SELECT * FROM events;")
- q = f"""
- INSERT INTO events.events(
- id, wallet, name, info, closing_date, event_start_date, event_end_date, amount_tickets, price_per_ticket, sold, "time")
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- # EVENT TICKETS
- res = sq.execute("SELECT * FROM ticket;")
- q = f"""
- INSERT INTO events.ticket(
- id, wallet, event, name, email, registered, paid, "time")
- VALUES (%s, %s, %s, %s, %s, %s::boolean, %s::boolean, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "example":
- # Example doesn't have a database at the moment
- pass
- elif schema == "hivemind":
- # Hivemind doesn't have a database at the moment
- pass
- elif schema == "jukebox":
- # JUKEBOXES
- res = sq.execute("SELECT * FROM jukebox;")
- q = f"""
- INSERT INTO jukebox.jukebox(
- id, "user", title, wallet, inkey, sp_user, sp_secret, sp_access_token, sp_refresh_token, sp_device, sp_playlists, price, profit)
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- # JUKEBOX PAYMENTS
- res = sq.execute("SELECT * FROM jukebox_payment;")
- q = f"""
- INSERT INTO jukebox.jukebox_payment(
- payment_hash, juke_id, song_id, paid)
- VALUES (%s, %s, %s, %s::boolean);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "withdraw":
- # WITHDRAW LINK
- res = sq.execute("SELECT * FROM withdraw_link;")
- q = f"""
- INSERT INTO withdraw.withdraw_link (
- id,
- wallet,
- title,
- min_withdrawable,
- max_withdrawable,
- uses,
- wait_time,
- is_unique,
- unique_hash,
- k1,
- open_time,
- used,
- usescsv,
- webhook_url,
- custom_url
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- # WITHDRAW HASH CHECK
- res = sq.execute("SELECT * FROM hash_check;")
- q = f"""
- INSERT INTO withdraw.hash_check (id, lnurl_id)
- VALUES (%s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "watchonly":
- # WALLETS
- res = sq.execute("SELECT * FROM wallets;")
- q = f"""
- INSERT INTO watchonly.wallets (
- id,
- "user",
- masterpub,
- title,
- address_no,
- balance,
- type,
- fingerprint
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- # ADDRESSES
- res = sq.execute("SELECT * FROM addresses;")
- q = f"""
- INSERT INTO watchonly.addresses (id, address, wallet, amount, branch_index, address_index, has_activity, note)
- VALUES (%s, %s, %s, %s, %s, %s, %s::boolean, %s);
- """
- insert_to_pg(q, res.fetchall())
- # CONFIG
- res = sq.execute("SELECT * FROM config;")
- q = f"""
- INSERT INTO watchonly.config ("user", json_data)
- VALUES (%s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "usermanager":
- # USERS
- res = sq.execute("SELECT * FROM users;")
- q = f"""
- INSERT INTO usermanager.users (id, name, admin, email, password)
- VALUES (%s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- # WALLETS
- res = sq.execute("SELECT * FROM wallets;")
- q = f"""
- INSERT INTO usermanager.wallets (id, admin, name, "user", adminkey, inkey)
- VALUES (%s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "tpos":
- # TPOSS
- res = sq.execute("SELECT * FROM tposs;")
- q = f"""
- INSERT INTO tpos.tposs (id, wallet, name, currency, tip_wallet, tip_options)
- VALUES (%s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "tipjar":
- # TIPJARS
- res = sq.execute("SELECT * FROM TipJars;")
- q = f"""
- INSERT INTO tipjar.TipJars (id, name, wallet, onchain, webhook)
- VALUES (%s, %s, %s, %s, %s);
- """
- pay_links = res.fetchall()
- insert_to_pg(q, pay_links)
- fix_id("tipjar.tipjars_id_seq", pay_links)
- # TIPS
- res = sq.execute("SELECT * FROM Tips;")
- q = f"""
- INSERT INTO tipjar.Tips (id, wallet, name, message, sats, tipjar)
- VALUES (%s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "subdomains":
- # DOMAIN
- res = sq.execute("SELECT * FROM domain;")
- q = f"""
- INSERT INTO subdomains.domain (
- id,
- wallet,
- domain,
- webhook,
- cf_token,
- cf_zone_id,
- description,
- cost,
- amountmade,
- allowed_record_types,
- time
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- # SUBDOMAIN
- res = sq.execute("SELECT * FROM subdomain;")
- q = f"""
- INSERT INTO subdomains.subdomain (
- id,
- domain,
- email,
- subdomain,
- ip,
- wallet,
- sats,
- duration,
- paid,
- record_type,
- time
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s::boolean, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "streamalerts":
- # SERVICES
- res = sq.execute("SELECT * FROM Services;")
- q = f"""
- INSERT INTO streamalerts.Services (
- id,
- state,
- twitchuser,
- client_id,
- client_secret,
- wallet,
- onchain,
- servicename,
- authenticated,
- token
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s::boolean, %s);
- """
- services = res.fetchall()
- insert_to_pg(q, services)
- fix_id("streamalerts.services_id_seq", services)
- # DONATIONS
- res = sq.execute("SELECT * FROM Donations;")
- q = f"""
- INSERT INTO streamalerts.Donations (
- id,
- wallet,
- name,
- message,
- cur_code,
- sats,
- amount,
- service,
- posted,
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s::boolean);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "splitpayments":
- # TARGETS
- res = sq.execute("SELECT * FROM targets;")
- q = f"""
- INSERT INTO splitpayments.targets (wallet, source, percent, alias)
- VALUES (%s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "satspay":
- # CHARGES
- res = sq.execute("SELECT * FROM charges;")
- q = f"""
- INSERT INTO satspay.charges (
- id,
- "user",
- description,
- onchainwallet,
- onchainaddress,
- lnbitswallet,
- payment_request,
- payment_hash,
- webhook,
- completelink,
- completelinktext,
- time,
- amount,
- balance,
- timestamp
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "satsdice":
- # SATSDICE PAY
- res = sq.execute("SELECT * FROM satsdice_pay;")
- q = f"""
- INSERT INTO satsdice.satsdice_pay (
- id,
- wallet,
- title,
- min_bet,
- max_bet,
- amount,
- served_meta,
- served_pr,
- multiplier,
- haircut,
- chance,
- base_url,
- open_time
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- # SATSDICE WITHDRAW
- res = sq.execute("SELECT * FROM satsdice_withdraw;")
- q = f"""
- INSERT INTO satsdice.satsdice_withdraw (
- id,
- satsdice_pay,
- value,
- unique_hash,
- k1,
- open_time,
- used
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- # SATSDICE PAYMENT
- res = sq.execute("SELECT * FROM satsdice_payment;")
- q = f"""
- INSERT INTO satsdice.satsdice_payment (
- payment_hash,
- satsdice_pay,
- value,
- paid,
- lost
- )
- VALUES (%s, %s, %s, %s::boolean, %s::boolean);
- """
- insert_to_pg(q, res.fetchall())
- # SATSDICE HASH CHECK
- res = sq.execute("SELECT * FROM hash_checkw;")
- q = f"""
- INSERT INTO satsdice.hash_checkw (id, lnurl_id)
- VALUES (%s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "paywall":
- # PAYWALLS
- res = sq.execute("SELECT * FROM paywalls;")
- q = f"""
- INSERT INTO paywall.paywalls(
- id,
- wallet,
- url,
- memo,
- description,
- amount,
- time,
- remembers,
- extras
- )
- VALUES (%s, %s, %s, %s, %s, %s, to_timestamp(%s), %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "offlineshop":
- # SHOPS
- res = sq.execute("SELECT * FROM shops;")
- q = f"""
- INSERT INTO offlineshop.shops (id, wallet, method, wordlist)
- VALUES (%s, %s, %s, %s);
- """
- shops = res.fetchall()
- insert_to_pg(q, shops)
- fix_id("offlineshop.shops_id_seq", shops)
- # ITEMS
- res = sq.execute("SELECT * FROM items;")
- q = f"""
- INSERT INTO offlineshop.items (shop, id, name, description, image, enabled, price, unit, fiat_base_multiplier)
- VALUES (%s, %s, %s, %s, %s, %s::boolean, %s, %s, %s);
- """
- items = res.fetchall()
- insert_to_pg(q, items)
- fix_id("offlineshop.items_id_seq", items)
- elif schema == "lnurlpos" or schema == "lnurldevice":
- # lnurldevice
- res = sq.execute("SELECT * FROM lnurldevices;")
- q = f"""
- INSERT INTO lnurldevice.lnurldevices (id, key, title, wallet, currency, device, profit, timestamp)
- VALUES (%s, %s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- # lnurldevice PAYMENT
- res = sq.execute("SELECT * FROM lnurldevicepayment;")
- q = f"""
- INSERT INTO lnurldevice.lnurldevicepayment (id, deviceid, payhash, payload, pin, sats, timestamp)
- VALUES (%s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "lnurlp":
- # PAY LINKS
- res = sq.execute("SELECT * FROM pay_links;")
- q = f"""
- INSERT INTO lnurlp.pay_links (
- id,
- wallet,
- description,
- min,
- served_meta,
- served_pr,
- webhook_url,
- success_text,
- success_url,
- currency,
- comment_chars,
- max,
- fiat_base_multiplier
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
- """
- pay_links = res.fetchall()
- insert_to_pg(q, pay_links)
- fix_id("lnurlp.pay_links_id_seq", pay_links)
- elif schema == "lndhub":
- # LndHub doesn't have a database at the moment
- pass
- elif schema == "lnticket":
- # TICKET
- res = sq.execute("SELECT * FROM ticket;")
- q = f"""
- INSERT INTO lnticket.ticket (
- id,
- form,
- email,
- ltext,
- name,
- wallet,
- sats,
- paid,
- time
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s::boolean, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- # FORM
- res = sq.execute("SELECT * FROM form2;")
- q = f"""
- INSERT INTO lnticket.form2 (
- id,
- wallet,
- name,
- webhook,
- description,
- flatrate,
- amount,
- amountmade,
- time
- )
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "livestream":
- # LIVESTREAMS
- res = sq.execute("SELECT * FROM livestreams;")
- q = f"""
- INSERT INTO livestream.livestreams (
- id,
- wallet,
- fee_pct,
- current_track
- )
- VALUES (%s, %s, %s, %s);
- """
- livestreams = res.fetchall()
- insert_to_pg(q, livestreams)
- fix_id("livestream.livestreams_id_seq", livestreams)
- # PRODUCERS
- res = sq.execute("SELECT * FROM producers;")
- q = f"""
- INSERT INTO livestream.producers (
- livestream,
- id,
- "user",
- wallet,
- name
- )
- VALUES (%s, %s, %s, %s, %s);
- """
- producers = res.fetchall()
- insert_to_pg(q, producers)
- fix_id("livestream.producers_id_seq", producers)
- # TRACKS
- res = sq.execute("SELECT * FROM tracks;")
- q = f"""
- INSERT INTO livestream.tracks (
- livestream,
- id,
- download_url,
- price_msat,
- name,
- producer
- )
- VALUES (%s, %s, %s, %s, %s, %s);
- """
- tracks = res.fetchall()
- insert_to_pg(q, tracks)
- fix_id("livestream.tracks_id_seq", tracks)
- elif schema == "lnaddress":
- # DOMAINS
- res = sq.execute("SELECT * FROM domain;")
- q = f"""
- INSERT INTO lnaddress.domain(
- id, wallet, domain, webhook, cf_token, cf_zone_id, cost, "time")
- VALUES (%s, %s, %s, %s, %s, %s, %s, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- # ADDRESSES
- res = sq.execute("SELECT * FROM address;")
- q = f"""
- INSERT INTO lnaddress.address(
- id, wallet, domain, email, username, wallet_key, wallet_endpoint, sats, duration, paid, "time")
- VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s::boolean, to_timestamp(%s));
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "discordbot":
- # USERS
- res = sq.execute("SELECT * FROM users;")
- q = f"""
- INSERT INTO discordbot.users(
- id, name, admin, discord_id)
- VALUES (%s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- # WALLETS
- res = sq.execute("SELECT * FROM wallets;")
- q = f"""
- INSERT INTO discordbot.wallets(
- id, admin, name, "user", adminkey, inkey)
- VALUES (%s, %s, %s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- elif schema == "scrub":
- # SCRUB LINKS
- res = sq.execute("SELECT * FROM scrub_links;")
- q = f"""
- INSERT INTO scrub.scrub_links (
- id,
- wallet,
- description,
- payoraddress
- )
- VALUES (%s, %s, %s, %s);
- """
- insert_to_pg(q, res.fetchall())
- else:
- print(f"❌ Not implemented: {schema}")
- sq.close()
-
- if ignore_missing == False:
- raise Exception(
- f"Not implemented: {schema}. Use --ignore-missing to skip missing extensions."
- )
- return
-
- print(f"✅ Migrated: {schema}")
+ data = sq.execute(f"SELECT * FROM {tableName};").fetchall()
+ insert_to_pg(q, data)
sq.close()
+def build_insert_query(schema, tableName, columns):
+ to_columns = ", ".join(map(lambda column: f'"{column[1]}"', columns))
+ values = ", ".join(map(lambda column: to_column_type(column[2]), columns))
+ return f"""
+ INSERT INTO {schema}.{tableName}({to_columns})
+ VALUES ({values});
+ """
+
+
+def to_column_type(columnType):
+ if columnType == "TIMESTAMP":
+ return "to_timestamp(%s)"
+ if columnType == "BOOLEAN":
+ return "%s::boolean"
+ return "%s"
+
+
parser = argparse.ArgumentParser(
description="LNbits migration tool for migrating data from SQLite to PostgreSQL"
)
@@ -774,11 +207,11 @@ args = parser.parse_args()
print("Selected path: ", args.sqlite_path)
if os.path.isdir(args.sqlite_path):
+ exclude_tables = ["dbversions"]
file = os.path.join(args.sqlite_path, "database.sqlite3")
check_db_versions(file)
if not args.extensions_only:
- print(f"Migrating: {file}")
- migrate_core(file)
+ migrate_core(file, exclude_tables)
if os.path.isdir(args.sqlite_path):
files = [
@@ -787,13 +220,8 @@ if os.path.isdir(args.sqlite_path):
else:
files = [args.sqlite_path]
+excluded_exts = ["ext_lnurlpos.sqlite3"]
for file in files:
filename = os.path.basename(file)
- if filename.startswith("ext_"):
- schema = filename.replace("ext_", "").split(".")[0]
- print(f"Migrating: {file}")
- migrate_ext(
- file,
- schema,
- ignore_missing=args.skip_missing,
- )
+ if filename.startswith("ext_") and filename not in excluded_exts:
+ migrate_ext(file)