-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1427fad
commit 2f3e24e
Showing
11 changed files
with
1,335 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
name: Tests | ||
|
||
on: | ||
push: | ||
pull_request: | ||
|
||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: '3.9' | ||
|
||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install poetry | ||
- name: Run setup script | ||
run: | | ||
/bin/bash .devcontainer/setup.sh ${{ github.workspace }} | ||
- name: Run unit tests | ||
run: | | ||
cd lnbits | ||
poetry_env_path = $(poetry env info --path) | ||
source $poetry_env_path/bin/activate | ||
cd .. | ||
pytest tests/unit/*.py -s | ||
- name: Setup integration tests | ||
run: bash tests/integration/start.sh | ||
|
||
- name: Run integration tests | ||
run: | | ||
cd lnbits | ||
poetry_env_path = $(poetry env info --path) | ||
source $poetry_env_path/bin/activate | ||
cd .. | ||
pytest tests/unit/*.py -s |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,4 @@ | ||
__pycache__ | ||
lnbits | ||
tests/integration/strfry-data | ||
tests/integration/lnbits_itest_data |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,252 @@ | ||
#For more information on .env files, their content and format: https://pypi.org/project/python-dotenv/ | ||
|
||
###################################### | ||
########### Admin Settings ########### | ||
###################################### | ||
|
||
# Enable Admin GUI, available for the first user in LNBITS_ADMIN_USERS if available. | ||
# Warning: Enabling this will make LNbits ignore most configurations in file. Only the | ||
# configurations defined in `ReadOnlySettings` will still be read from the environment variables. | ||
# The rest of the settings will be stored in your database and you will be able to change them | ||
# only through the Admin UI. | ||
# Disable this to make LNbits use this config file again. | ||
LNBITS_ADMIN_UI=true | ||
|
||
# Change theme | ||
LNBITS_SITE_TITLE="LNBits_NWC_SP" | ||
LNBITS_SITE_TAGLINE="free and open-source lightning wallet" | ||
LNBITS_SITE_DESCRIPTION="The world's most powerful suite of bitcoin tools. Run for yourself, for others, or as part of a stack." | ||
# Choose from bitcoin, mint, flamingo, freedom, salvador, autumn, monochrome, classic, cyber | ||
LNBITS_THEME_OPTIONS="classic, bitcoin, flamingo, freedom, mint, autumn, monochrome, salvador, cyber" | ||
# LNBITS_CUSTOM_LOGO="https://lnbits.com/assets/images/logo/logo.svg" | ||
|
||
HOST=0.0.0.0 | ||
PORT=5000 | ||
|
||
###################################### | ||
########## Funding Source ############ | ||
###################################### | ||
|
||
# which fundingsources are allowed in the admin ui | ||
LNBITS_ALLOWED_FUNDING_SOURCES="VoidWallet, FakeWallet, CoreLightningWallet, CoreLightningRestWallet, LndRestWallet, EclairWallet, LndWallet, LnTipsWallet, LNPayWallet, LNbitsWallet, AlbyWallet, ZBDWallet, PhoenixdWallet, OpenNodeWallet" | ||
|
||
LNBITS_BACKEND_WALLET_CLASS=FakeWallet | ||
# VoidWallet is just a fallback that works without any actual Lightning capabilities, | ||
# just so you can see the UI before dealing with this file. | ||
|
||
# How many times to retry connectiong to the Funding Source before defaulting to the VoidWallet | ||
# FUNDING_SOURCE_MAX_RETRIES=4 | ||
|
||
# Invoice expiry for LND, CLN, Eclair, LNbits funding sources | ||
LIGHTNING_INVOICE_EXPIRY=3600 | ||
|
||
# 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 | ||
|
||
# CoreLightningWallet | ||
CORELIGHTNING_RPC="/home/bob/.lightning/bitcoin/lightning-rpc" | ||
|
||
# CoreLightningRestWallet | ||
CORELIGHTNING_REST_URL=http://127.0.0.1:8185/ | ||
CORELIGHTNING_REST_MACAROON="/path/to/clnrest/access.macaroon" # or BASE64/HEXSTRING | ||
CORELIGHTNING_REST_CERT="/path/to/clnrest/tls.cert" | ||
|
||
# LnbitsWallet | ||
LNBITS_ENDPOINT=https://demo.lnbits.com | ||
LNBITS_KEY=LNBITS_ADMIN_KEY | ||
|
||
# LndWallet | ||
LND_GRPC_ENDPOINT=127.0.0.1 | ||
LND_GRPC_PORT=10009 | ||
LND_GRPC_CERT="/home/bob/.lnd/tls.cert" | ||
LND_GRPC_MACAROON="/home/bob/.lnd/data/chain/bitcoin/mainnet/admin.macaroon" # or HEXSTRING | ||
# To use an AES-encrypted macaroon, set | ||
# LND_GRPC_MACAROON="eNcRyPtEdMaCaRoOn" | ||
|
||
# LndRestWallet | ||
LND_REST_ENDPOINT=https://127.0.0.1:8080/ | ||
LND_REST_CERT="/home/bob/.lnd/tls.cert" | ||
LND_REST_MACAROON="/home/bob/.lnd/data/chain/bitcoin/mainnet/admin.macaroon" # or HEXSTRING | ||
# To use an AES-encrypted macaroon, set | ||
# LND_REST_MACAROON_ENCRYPTED="eNcRyPtEdMaCaRoOn" | ||
|
||
# LNPayWallet | ||
LNPAY_API_ENDPOINT=https://api.lnpay.co/v1/ | ||
# Secret API Key under developers tab | ||
LNPAY_API_KEY=LNPAY_API_KEY | ||
# Wallet Admin in Wallet Access Keys | ||
LNPAY_WALLET_KEY=LNPAY_ADMIN_KEY | ||
|
||
# AlbyWallet | ||
ALBY_API_ENDPOINT=https://api.getalby.com/ | ||
ALBY_ACCESS_TOKEN=ALBY_ACCESS_TOKEN | ||
|
||
# ZBDWallet | ||
ZBD_API_ENDPOINT=https://api.zebedee.io/v0/ | ||
ZBD_API_KEY=ZBD_ACCESS_TOKEN | ||
|
||
# PhoenixdWallet | ||
PHOENIXD_API_ENDPOINT=http://localhost:9740/ | ||
PHOENIXD_API_PASSWORD=PHOENIXD_KEY | ||
|
||
# OpenNodeWallet | ||
OPENNODE_API_ENDPOINT=https://api.opennode.com/ | ||
OPENNODE_KEY=OPENNODE_ADMIN_KEY | ||
|
||
# FakeWallet | ||
FAKE_WALLET_SECRET="ToTheMoon1" | ||
LNBITS_DENOMINATION=sats | ||
|
||
# EclairWallet | ||
ECLAIR_URL=http://127.0.0.1:8283 | ||
ECLAIR_PASS=eclairpw | ||
|
||
# LnTipsWallet | ||
# Enter /api in LightningTipBot to get your key | ||
LNTIPS_API_KEY=LNTIPS_ADMIN_KEY | ||
LNTIPS_API_ENDPOINT=https://ln.tips | ||
|
||
###################################### | ||
####### Auth Configurations ########## | ||
###################################### | ||
# Secret Key: will default to the hash of the super user. It is strongly recommended that you set your own value. | ||
AUTH_SECRET_KEY="secret" | ||
AUTH_TOKEN_EXPIRE_MINUTES=525600 | ||
# Possible authorization methods: user-id-only, username-password, google-auth, github-auth, keycloak-auth | ||
AUTH_ALLOWED_METHODS="user-id-only, username-password" | ||
# Set this flag if HTTP is used for OAuth | ||
# OAUTHLIB_INSECURE_TRANSPORT="1" | ||
|
||
# Google OAuth Config | ||
# Make sure that the authorized redirect URIs contain https://{domain}/api/v1/auth/google/token | ||
GOOGLE_CLIENT_ID="" | ||
GOOGLE_CLIENT_SECRET="" | ||
|
||
# GitHub OAuth Config | ||
# Make sure that the authorization callback URL is set to https://{domain}/api/v1/auth/github/token | ||
GITHUB_CLIENT_ID="" | ||
GITHUB_CLIENT_SECRET="" | ||
|
||
# Keycloak OAuth Config | ||
# Make sure that the valid redirect URIs contain https://{domain}/api/v1/auth/keycloak/token | ||
KEYCLOAK_CLIENT_ID="" | ||
KEYCLOAK_CLIENT_SECRET="" | ||
KEYCLOAK_DISCOVERY_URL="" | ||
|
||
|
||
###################################### | ||
|
||
# uvicorn variable, uncomment to allow https behind a proxy | ||
# IMPORTANT: this also needs the webserver to be configured to forward the headers | ||
# http://docs.lnbits.org/guide/installation.html#running-behind-an-apache2-reverse-proxy-over-https | ||
# FORWARDED_ALLOW_IPS="*" | ||
|
||
# Server security, rate limiting ips, blocked ips, allowed ips | ||
LNBITS_RATE_LIMIT_NO="200" | ||
LNBITS_RATE_LIMIT_UNIT="minute" | ||
LNBITS_ALLOWED_IPS="" | ||
LNBITS_BLOCKED_IPS="" | ||
|
||
# Allow users and admins by user IDs (comma separated list) | ||
# if set new users will not be able to create accounts | ||
LNBITS_ALLOWED_USERS="" | ||
LNBITS_ADMIN_USERS="" | ||
# ID of the super user. The user ID must exist. | ||
# SUPER_USER="" | ||
|
||
# Extensions only admin can access | ||
LNBITS_ADMIN_EXTENSIONS="ngrok, admin" | ||
|
||
# Start LNbits core only. The extensions are not loaded. | ||
# LNBITS_EXTENSIONS_DEACTIVATE_ALL=true | ||
|
||
# Disable account creation for new users | ||
# LNBITS_ALLOW_NEW_ACCOUNTS=false | ||
|
||
# Enable Node Management without activating the LNBITS Admin GUI | ||
# by setting the following variables to true. | ||
LNBITS_NODE_UI=false | ||
LNBITS_PUBLIC_NODE_UI=false | ||
# Enabling the transactions tab can cause crashes on large Core Lightning nodes. | ||
LNBITS_NODE_UI_TRANSACTIONS=false | ||
|
||
LNBITS_DEFAULT_WALLET_NAME="LNbits wallet" | ||
|
||
# Ad space description | ||
# LNBITS_AD_SPACE_TITLE="Supported by" | ||
# csv ad space, format "<url>;<img-light>;<img-dark>, <url>;<img-light>;<img-dark>", extensions can choose to honor | ||
# LNBITS_AD_SPACE="https://shop.lnbits.com/;https://raw.githubusercontent.com/lnbits/lnbits/main/lnbits/static/images/lnbits-shop-light.png;https://raw.githubusercontent.com/lnbits/lnbits/main/lnbits/static/images/lnbits-shop-dark.png" | ||
# LNBITS_SHOW_HOME_PAGE_ELEMENTS=true # if set to true, the ad space will be displayed on the home page | ||
# LNBITS_CUSTOM_BADGE="USE WITH CAUTION - LNbits wallet is still in BETA" | ||
# LNBITS_CUSTOM_BADGE_COLOR="warning" | ||
|
||
# Hides wallet api, extensions can choose to honor | ||
LNBITS_HIDE_API=false | ||
|
||
# LNBITS_EXTENSIONS_MANIFESTS="https://raw.githubusercontent.com/lnbits/lnbits-extensions/main/extensions.json,https://raw.githubusercontent.com/lnbits/lnbits-extensions/main/extensions-trial.json" | ||
# GitHub has rate-limits for its APIs. The limit can be increased specifying a GITHUB_TOKEN | ||
# LNBITS_EXT_GITHUB_TOKEN=github_pat_xxxxxxxxxxxxxxxxxx | ||
|
||
# Path where extensions will be installed (defaults to `./lnbits/`). | ||
# Inside this directory the `extensions` and `upgrades` sub-directories will be created. | ||
# LNBITS_EXTENSIONS_PATH="/path/to/some/dir" | ||
|
||
# Extensions to be installed by default. If an extension from this list is uninstalled then it will be re-installed on the next restart. | ||
# The extension must be removed from this list in order to not be re-installed. | ||
LNBITS_EXTENSIONS_DEFAULT_INSTALL="tpos" | ||
|
||
# Database: to use SQLite, specify LNBITS_DATA_FOLDER | ||
# to use PostgreSQL, specify LNBITS_DATABASE_URL=postgres://... | ||
# to use CockroachDB, specify LNBITS_DATABASE_URL=cockroachdb://... | ||
# for both PostgreSQL and CockroachDB, you'll need to install | ||
# psycopg2 as an additional dependency | ||
LNBITS_DATA_FOLDER="./data" | ||
# LNBITS_DATABASE_URL="postgres://user:password@host:port/databasename" | ||
|
||
# the service fee (in percent) | ||
LNBITS_SERVICE_FEE=0.0 | ||
# the wallet where fees go to | ||
# LNBITS_SERVICE_FEE_WALLET= | ||
# the maximum fee per transaction (in satoshis) | ||
# LNBITS_SERVICE_FEE_MAX=1000 | ||
# disable fees for internal transactions | ||
# LNBITS_SERVICE_FEE_IGNORE_INTERNAL=true | ||
|
||
# value in millisats | ||
LNBITS_RESERVE_FEE_MIN=2000 | ||
# value in percent | ||
LNBITS_RESERVE_FEE_PERCENT=1.0 | ||
|
||
# limit the maximum balance for each wallet | ||
# throw an error if the wallet attempts to create a new invoice | ||
|
||
# LNBITS_WALLET_LIMIT_MAX_BALANCE=1000000 | ||
# LNBITS_WALLET_LIMIT_DAILY_MAX_WITHDRAW=1000000 | ||
# LNBITS_WALLET_LIMIT_SECS_BETWEEN_TRANS=60 | ||
|
||
# Limit fiat currencies allowed to see in UI | ||
# LNBITS_ALLOWED_CURRENCIES="EUR, USD" | ||
|
||
###################################### | ||
###### Logging and Development ####### | ||
###################################### | ||
|
||
DEBUG=true | ||
DEBUG_DATABASE=false | ||
BUNDLE_ASSETS=true | ||
|
||
# logging into LNBITS_DATA_FOLDER/logs/ | ||
ENABLE_LOG_TO_FILE=true | ||
|
||
# https://loguru.readthedocs.io/en/stable/api/logger.html#file | ||
LOG_ROTATION="100 MB" | ||
LOG_RETENTION="3 months" | ||
|
||
# for database cleanup commands | ||
# CLEANUP_WALLETS_DAYS=90 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
yes v039fk_lnbits_integration_test_folder |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#!/bin/bash | ||
|
||
# cd in the script folder | ||
cd "$(dirname "$0")" | ||
|
||
# Check if we are in the right folder | ||
if [ ! -f ".v039fk_lnbits_integration_test_folder" ]; then | ||
echo "Please run this script from the tests/integration folder" | ||
exit 1 | ||
fi | ||
|
||
# Double check if we are in the right folder | ||
if [ "`cat .v039fk_lnbits_integration_test_folder`" != "yes v039fk_lnbits_integration_test_folder" ]; then | ||
echo "Please run this script from the tests/integration folder!" | ||
exit 1 | ||
fi | ||
|
||
# Start nostr Relay | ||
docker run --name=lnbits_nwcprovider_ext_nostr_test \ | ||
-d \ | ||
--rm \ | ||
-v $PWD/strfry.conf:/etc/strfry.conf \ | ||
-v $PWD/strfry-data:/app/strfry-db \ | ||
-p 7777:7777 \ | ||
ghcr.io/hoytech/strfry:latest | ||
|
||
# Start lnbits with the nwcprovider extension | ||
rm -Rf lnbits_itest_data | ||
unzip data.zip | ||
docker run --name=lnbits_nwcprovider_ext_lnbits_test \ | ||
-d \ | ||
--rm \ | ||
-p 5002:5000 \ | ||
-v ${PWD}/.env:/app/.env \ | ||
-v ${PWD}/lnbits_itest_data/:/app/data \ | ||
-v ${PWD}/../../:/app/lnbits/extensions/nwcprovider:ro \ | ||
lnbits/lnbits | ||
|
||
|
||
docker network create lnbits_nwcprovider_ext_test_network || true | ||
docker network connect lnbits_nwcprovider_ext_test_network lnbits_nwcprovider_ext_nostr_test --alias nostr|| true | ||
docker network connect lnbits_nwcprovider_ext_test_network lnbits_nwcprovider_ext_lnbits_test --alias lnbits|| true | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/bin/bash | ||
docker stop lnbits_nwcprovider_ext_nostr_test || true | ||
docker stop lnbits_nwcprovider_ext_lnbits_test || true | ||
|
||
# Remove lnbits_nwcprovider_ext_test_network network | ||
docker network rm lnbits_nwcprovider_ext_test_network || true |
Oops, something went wrong.