120 Commits
Author SHA1 Message Date
+3 bc81dc5a28 update main branch to 0.11.0 (#1994)
* [FIX] correct amount in fiat tracking (#1934)

* better debug log

* fix: convert msat to sat for fiat amount

* [CHORE] update to version 0.11.0 (#1933)

* [FIX] codeql for dev branch (#1935)

* [FEAT] create data folder if it doesnt exist (#1930)

* [FEAT] improve update_admin_settings (#1903)

* [FEAT] improve update_admin_settings

while working on the push notification pr i found it very hard just to update
2 settings inside the db, so i improved upon update_admin_settings.
now you just need to provide a dict with key/values you want to update inside db.

also debugging the endpoints for update_settings i found despite the type of `EditableSettings`
fastapi did in fact pass a dict.

* t

* use `EditableSettings` as param in update_settings

* fix settings model validation

we previously overrode the pydantic validation with our own method

* make `LnbitsSettings` a `BaseModel` and only add `BaseSettings` later

this allows us to instantiate `EditableSettings` without the environment values being loaded in

* add test

* forbid extra fields in update api

* fixup

* add test

* test datadir

* move UpdateSettings

* fix compat

* fixup webpush

---------

Co-authored-by: jacksn <jkranawetter05@gmail.com>

* [TEST] use clean db in postgres tests (#1928)

* [CORE] Document CoreLightningRestWallet (#1920)

* document CoreLightningRestWallet
* pushed to comment
* fixed base64 comment

---------

Co-authored-by: Ben <ben@arc.wales>

* [TEST] use test data as mockdata (#1929)

* add db group to cli

* delete mock_data.zip

* generate migration data through tests

* [BUG] self payments for the same wallet (#1914)

* [BUG] self payments for fakewallet

make it possible to pay to yourself on fakewallet

f

* bugfix selfpayments for fakewallet

* delete by wallet and fix previous_payment check (#1919)

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>

* [REFACTOR] core/__init__ to not have circular import issues (#1876)

* F541 fix

remove unused workflow and combine linters into one

add lnbits/static to ruff ignore
remote setupnode

ignore upgrades for mypy

ignore F401 for __init__ files

unused noqa

ignore upgrades for black

F821: undefine name

disabled and logged webhook_listener for opennode and lnpay because they are obvisouly not working

E402: module level import not at top of file

fixup

revert breaking changes wait for PR #1876

https://github.com/lnbits/lnbits/pull/1876

E721 fixes, only popped up for python3.9 not 3.10

[REFACTOR] core/__init__ to not have circular import issues

WIP

add db for backwards compat

fix pyright

make mypy happy again

pyright did not catch those, i think mypy got confused with relative imports. maybe we should use absolute ones everywhere

E402: module level import not at top of file

dont forget to add core_app

rebase on ruff pr

f

remo

format

* fix clnrest

* ignore E402 in conftest

* refactoring issues

---------

Co-authored-by: jacksn <jkranawetter05@gmail.com>

* make wallets name prettier! (#1918)

* make wallets name prettier!

* Update lnbits/core/templates/admin/index.html

Co-authored-by: dni  <office@dnilabs.com>

* Update lnbits/core/templates/admin/index.html

Co-authored-by: dni  <office@dnilabs.com>

---------

Co-authored-by: Arc <33088785+arcbtc@users.noreply.github.com>
Co-authored-by: dni  <office@dnilabs.com>

* Fix payments chart (#1851)

* feat: payment history endpoint

* test payment history

* use new endpoint in frontend

* refactor tests

* [CHORE] bugfix formatting prettier (#1936)

* do not show deleted wallets (#1942)

* do not show deleted wallets

* rename parameter for clarity

* extension loader: do not panic! (#1945)

* Revert "do not show deleted wallets (#1942)" (#1947)

This reverts commit 1ee2d53069.

* remove LNURL-p description_hash validation (#1951)

* [CHORE] update dependencies, unsafe pip packages, fastapi (#1609)

* d

* middleware needs to be initialised before startup

runs on python3.11

update secp256k1

update psycopg

* update fastapi to v0.103

* fix webpush

* bump dependencies

* ruff issue

* lock versions

* bump versions

---------

Co-authored-by: jacksn <jkranawetter05@gmail.com>

* [FEAT] Focus cursor to textarea (#1959)

* Focus cursor to textarea 

Fix need for additional click to textarea before pasting

* [FEAT] autofocus textarea on paste request

closes #1959

* format arba

* bundle

---------

Co-authored-by: dni  <office@dnilabs.com>

* add editorconfig config, fix issues (only whitespace changes) (#1958)

* adding bolt11 lib and removing bolt11.py from the codebase (#1817)

* add latest bolt11 lib

decode exception handling for create_payment
fix json response for decode
bugfix hexing description hash
improvement on bolt11 lib
update to bolt11 2.0.1
fix clnrest
* bolt 2.0.4
* refactor core/crud.py

* catch bolt11 erxception clnrest

* Updated guide for extension development for current extension management process (#1962)

* Startup optimization: nonblocking expiry check (#1943)

* nonblocking expiry check
* autoruff
* smaller interval

---------

Co-authored-by: dni  <office@dnilabs.com>

* Support custom path for installed extensions (#1940)

* feat: the more you fuck around the more you learn
* feat: backwards compatible static file loading
* refactor: update paths for extension files
* refactor: var renaming
* doc: update `LNBITS_EXTENSIONS_PATH` documentation
* fix: default folder install
* feat: install ext without external path
* doc: `PYTHONPATH` no longer required
* fix: add warnings
* fix: missing path
* refactor: re-order statements
* fix: hardcoded path separator

---------

Co-authored-by: dni  <office@dnilabs.com>

* [FEAT] Node Managment (#1895)

* [FEAT] Node Managment

feat: node dashboard channels and transactions
fix: update channel variables
better types
refactor ui
add onchain balances and backend_name
mock values for fake wallet
remove app tab
start implementing peers and channel management
peer and channel management
implement channel closing
add channel states, better errors
seperate payments and invoices on transactions tab
display total channel balance
feat: optional public page
feat: show node address
fix: port conversion
feat: details dialog on transactions
fix: peer info without alias
fix: rename channel balances
small improvements to channels tab
feat: pagination on transactions tab
test caching transactions
refactor: move WALLET into wallets module
fix: backwards compatibility
refactor: move get_node_class to nodes modules
post merge bundle fundle
feat: disconnect peer
feat: initial lnd support
only use filtered channels for total balance
adjust closing logic
add basic node tests
add setting for disabling transactions tab
revert unnecessary changes
add tests for invoices and payments
improve payment and invoice implementations
the previously used invoice fixture has a session scope, but a new invoice is required
tests and bug fixes for channels api
use query instead of body in channel delete
delete requests should generally not use a body
take node id through path instead of body for delete endpoint
add peer management tests
more tests for errors
improve error handling
rename id and pubkey to peer_id for consistency
remove dead code
fix http status codes
make cache keys safer
cache node public info
comments for node settings
rename node prop in frontend
adjust tests to new status codes
cln: use amount_msat instead of value for onchain balance
turn transactions tab off by default
enable transactions in tests
only allow super user to create or delete
fix prop name in admin navbar

---------

Co-authored-by: jacksn <jkranawetter05@gmail.com>

* [FEAT] cleanup GET /wallet endpoint, add wallet api routes (#1932)

* [FEAT] cleanup GET /wallet endpoint, add wallet api route
this removes the functionalitiy to create accounts and wallets via
the GET /wallet endpoint in generic.py

it add endpoints inside the api.py for it and the frontend is modified to use the api endpoints

this also simplifies for the `feat/login` for the route.

* remove stale generic tests and add api tests

* bug wrong endpoint create account

* vlad nitpick

* added checkif deleted is 404

* reload after renaming wallet

* another iteration with vlad

* create new wallet if it none exist

* fix delete refresh

* formatting

* Don't create user if allowed users is set (#1822)

* dont allow creating of users when allowed users are set
* add info to .env.example

---------

Co-authored-by: dni  <office@dnilabs.com>

* fix typos (#1969)

* fix: node ranks (#1968)

* [BUG] bundle is broken (#1972)

* [BUG] Fix bad transation call (#1973)

* fix: `:label="$('xxx')` to :label="$t('xxx')

* chore: commit bundles

* chore: remove extra file

* fix: catch sse exceptions (#1971)

* Add Markdown capability globally (#1965)

* add markdown capability globally

* add markdown to site description

* add showdown to package.json

remove it from vendor.json, its bundled

* formatting

* io

* Update lnbits/core/templates/core/index.html

---------

Co-authored-by: dni  <office@dnilabs.com>

* feat: remove commit version (#1980)

* nix: fix nixosModule and build (#1979)

* lnbits/settings: get LNBITS_COMMIT from envvar if available

There is no other way of setting the git commit at runtime, for build systems like Nix that allow you to hermetically define envvars derived from the source that will be available reproducibly at runtime

* nix: update potree2nix and nixosModule

This is a general refactor that gets everything building and passing the vmTest again

* Update nix/modules/lnbits-service.nix

---------

Co-authored-by: Pavol Rusnak <pavol@rusnak.io>

* catch exceptions in migrations for extensions (#1987)

* fix: admin_ui js error (#1982)

* fix: admin_ui js error

undefined formData.lnbits_allowed_currencies JS error in console

* vlad suggestion

* update: to 0.11.1

* revert: update

---------

Co-authored-by: jackstar12 <62219658+jackstar12@users.noreply.github.com>
Co-authored-by: dni  <office@dnilabs.com>
Co-authored-by: jacksn <jkranawetter05@gmail.com>
Co-authored-by: Ben <ben@arc.wales>
Co-authored-by: Tiago Vasconcelos <talvasconcelos@gmail.com>
Co-authored-by: Arc <33088785+arcbtc@users.noreply.github.com>
Co-authored-by: arbadacarba <63317640+arbadacarbaYK@users.noreply.github.com>
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
Co-authored-by: blackcoffeexbt <87530449+blackcoffeexbt@users.noreply.github.com>
Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com>
Co-authored-by: Matthew Croughan <matt@croughan.sh>
2023-10-05 10:52:57 +02:00
3a653630f1 Wallets: add cln-rest (#1775)
* receive and pay works

* fix linter issues

* import Paymentstatus from core.models

* fix test real payment

* fix get_payment_status check in lnbits

* fix tests?

* simplify

* refactor AsyncClient

* inline import of get_wallet_class

fixes the previous cyclic import

* invoice stream working

* add notes as a reminder to get rid of labels when cln-rest supports payment_hash

* create Payment dummy classmethod

* remove unnecessary fields from dummy

* fixes tests?

* fix model

* fix cln bug (#1814)

* auth header

* rename cln to corelightning

* add clnrest to admin_ui

* add to clnrest allowed sources

* add allowed sources to .env.example

* allow macaroon files

* add corelightning rest to workflow

* proper env names

* cleanup routine

* log wallet connection errors and fix macaroon clnrest

* print error on connection fails

* clnrest: handle disconnects faster

* fix test use of get_payment_status

* make format

* clnrest: add unhashed_description

* add unhashed_description to test

* description_hash test

* unhashed_description not supported by clnrest

* fix checking_id return in api_payments_create_invoice

* refactor test to use client instead of api_payments

* formatting, some errorlogging

* fix test 1

* fix other tests, paid statuses was missing

* error handling

* revert unnecessary changes (#1854)

* apply review of motorina0

---------

Co-authored-by: jackstar12 <jkranawetter05@gmail.com>
Co-authored-by: jackstar12 <62219658+jackstar12@users.noreply.github.com>
Co-authored-by: dni  <office@dnilabs.com>
2023-08-23 08:59:39 +02:00
f384c5c366 Increase default invoice expiry to 1 hour (#1825)
* more reasonable default expiry

600 = 10 minutes which is a pretty short amount of time, for example when using lnbits fundingsource inside lnbits itself it would fail if you do a submarine swap or anything involved with hold invoices

i think 3600 = 1 hour should not make a difference in performance and is a way more reasonable expiry

* change default in .env.example

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
2023-07-19 13:13:46 +02:00
7e1f43933d Adds security tools, such as a rate limiter, IP block/allow, server logs (#1606)
* added ratelimiter
* Adds server logs to admin ui
* Added IP allow/ban list
* fixed remove ips
* Split rate limit number and unit
* security tab and background tasks for killswitch
* fix test for auditor api

---------

Co-authored-by: dni  <office@dnilabs.com>
2023-06-20 11:26:33 +02:00
48fc73d9d4 Ability to limit available fiat currencies (#1748)
* feat: limit number of available fiat currencies
* feat: Add allowed currency selector to Admin UI
* motorinas suggestions

---------

Co-authored-by: dni  <office@dnilabs.com>
2023-06-19 12:24:19 +02:00
ArcandGitHub dc2a7898f7 Merge pull request #1564 from jackstar12/remove-disabled-extensions
remove lnbits_disabled_extensions
2023-03-07 13:20:56 +00:00
ArcandGitHub 2787d5c6b6 Merge pull request #1542 from lnbits/pullntxbot
RIP Lntxbot, thank you for all your help building LN, you will be missed :(
2023-03-07 12:48:44 +00:00
jacksn 0ca4b8dea1 remove lnbits_disabled_extensions from .env.example and admin ui 2023-03-05 21:44:25 +01:00
dni ⚡andGitHub 6f194fe2f8 introduce baseurl and remove force_https (#1549)
* introduce baseurl and remove force_https

* calle's suggestions
2023-02-28 13:45:43 +01:00
Ben Arc de445aa593 LNtxbot mentioned in a few more places 2023-02-23 11:46:29 +00:00
Ben Arc cbde5744aa RIP Lntxbot, thank you for all your help building LN, you will be missed :( 2023-02-23 11:41:44 +00:00
Ben Arc 9f049c1952 Added cyber theme
Because we all liked the theme from this pr https://github.com/lnbits/lnbits/pulls?page=2&q=is%3Apr+is%3Aopen
2023-02-20 22:41:11 +00:00
Vlad Stan 61fb44a04e feat: add default extension install (LNBITS_EXTENSIONS_DEFAULT_INSTALL) 2023-02-16 10:48:12 +02:00
calleandGitHub 52e654af86 respect https setting in admin ui link (#1416)
* respect https setting in admin ui link

* make format
2023-01-30 11:30:23 +01:00
ben 39f0000fa5 Merge remote-tracking branch 'origin/main' into extension_install_02 2023-01-26 12:39:11 +00:00
f0d58a8365 Wallets: add custom invoice expiry (#1396)
* expiry for fakewallet

* expiry for lnd

* lnbits backend

* fix: eclair descriptionHash fixed and expiry added

* cln and sparko

* test expiry

* Eclair from AdminUI and bugfix for nonexistent payments

* add to settings and .env and remove lntxbot

* remove duplicate and format

* add invoice expiry

* add min max and step

* UI works now

* test should fail, sanity check, will revert

* revert, ready for merge

Co-authored-by: Tiago Vasconcelos <talvasconcelos@gmail.com>
2023-01-26 11:08:40 +01:00
Vlad StanandGitHub 9cca87f738 Merge branch 'main' into extension_install_02 2023-01-25 09:50:54 +02:00
Vlad Stan d3c05ef300 doc: add LNBITS_EXT_GITHUB_TOKEN 2023-01-18 17:38:51 +02:00
Vlad Stan 1f4f4d93ca feat: add LNBITS_EXTENSIONS_MANIFESTS env var 2023-01-18 17:38:24 +02:00
HamishMacEwanandGitHub 2eb76d0e26 Additional information
1. Link to details on what and how to include information in a .env file
2. Clarify how to activate the FORWARDED_ALLOW_IPS environment variable for those situations where the proxy is not at the default 127.0.0.1 (most often inside a Docker container.
2023-01-15 14:46:19 +13:00
Sam KornandGitHub 265ea16d30 add example configuration for connecting LND over grpc (#1364) 2023-01-14 12:31:00 +01:00
callebtc c96fd6783b fix super_user check, fixes #1250 2023-01-04 10:41:56 +01:00
DreadandGitHub 97d1effe1c Remove duplicate LNBITS_ALLOWED_USERS 2022-12-19 18:55:05 -05:00
Tiago Vasconcelos f7dd533daa make ad space as a CSV formatted string 2022-12-01 22:16:55 +00:00
dni ⚡ 803c9349d4 merge main 2022-12-01 12:37:08 +01:00
callebtcanddni ⚡ 33eb460d5c restore 7f64f426c2 2022-12-01 12:21:25 +01:00
calleanddni ⚡ 2c562b7053 Revert "Extension: Cashu" 2022-12-01 12:21:25 +01:00
callebtcanddni ⚡ b936d122a3 scrolling works 2022-12-01 12:21:25 +01:00
callebtcanddni ⚡ 4c38bcbcf3 set private key 2022-12-01 12:21:25 +01:00
callebtc 35c5542b2f restore 7f64f426c2 2022-11-30 16:24:13 +01:00
calleandGitHub 5c09469d61 Revert "Extension: Cashu" 2022-11-27 18:03:20 +01:00
callebtc 7bfd8f3a62 overwrite mock data 2022-11-24 16:08:12 +01:00
callebtc f6047d9ea5 revert to PR #1125 2022-11-24 15:43:39 +01:00
dni ⚡ 74eece78de merge from master 2022-11-24 14:35:32 +01:00
ben 3f475bf1ea Defaulted to null in env.example 2022-11-20 17:41:57 +00:00
ben 0c94b159e2 Improved ad space function 2022-11-20 17:29:07 +00:00
ChuckNorrisonandGitHub db4232f2ce Documentation improved in example env
LNBITS_ALLOWED_USERS and LNBITS_ADMIN_USERS wants usr string from wallet url

List needs to be comma separated if used more than one user
2022-11-11 12:06:35 +01:00
callebtc 00e8255e0b scrolling works 2022-11-07 15:36:52 +01:00
callebtc bc35741a8a set private key 2022-11-07 14:00:05 +01:00
dni ⚡andGitHub d702e1b6a5 add FORWARDED_ALLOW_IPS variable to .example.env (#1077) 2022-10-26 13:07:34 +02:00
dni ⚡ 6db5fb16c8 change comments to use multiple lines 2022-10-25 09:20:16 +02:00
Tiago vasconcelosanddni ⚡ 3f38a9094b create first user on fresh install 2022-10-25 09:20:16 +02:00
Tiago vasconcelosanddni ⚡ c41b4e714c typo 2022-10-25 09:20:16 +02:00
benarcanddni ⚡ 708f855c1d Added old admin extension 2022-10-25 09:20:12 +02:00
calleandGitHub 3bf3c91007 Add backend: ln.tips (LightningTipBot) wallet (#921)
* add ln.tips

* add wallet

* revert lnbits

* make format

* .env.example

* listener fix

* reconnect fixed

* make format

* make format
2022-10-10 16:12:06 +02:00
IndraandGitHub 3aa4d09103 Adding missing theme options in conf file
Missing bitcoin theme in comment.
Missing flamingo theme in list of values for LNBITS_THEME_OPTIONS.
2022-10-02 16:45:16 +01:00
fusion44andGitHub b47685f8aa Updates and fixes (#912)
* feat: add support for python 3.10

* fix: move all in-line comments to their own line

On some systems the environs package was uable to parse values as it
tried read the comments as code...
2022-09-23 11:02:23 +03:00
197ff7d054 Core: reserve fee as an .env variable (#631)
* reserve fee as an .env variable

* fixed bad import

* Update .env.example

Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>

* Update lnbits/core/services.py

Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>

* Update lnbits/core/services.py

Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>

* Update lnbits/settings.py

Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>

* variable consistent names

* fix services.py variable names

* percent default fix

* Update lnbits/settings.py

int to float

* Update lnbits/settings.py

int to float

* Update .env.example

int to float

* make format

* fixed failing bleskomat test, expecting 2000 msats fee

* Update tests/extensions/bleskomat/test_lnurl_api.py

revert to 2 sat

* Update .env.example

* Update lnbits/settings.py

Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
2022-08-13 20:19:08 +02:00
calleandGitHub 9c19b61e4a Mega-merge 3: CLN update client lib with descriptionhash support (WIP) (#792)
* CoreLightningWallet
2022-08-01 16:41:50 +02:00
ben 723d7fffd2 Changed back to VoidWallet 2022-08-01 08:58:21 +01:00