Commit graph

215 commits

Author SHA1 Message Date
dni ⚡
4e6f229db2
[CHORE] string formatting default length 88 (#1887)
* [CHORE] string formatting default length 88

uses blacks default off 88 and enabled autostringformatting

* formatting

* nitpicks jackstar

fix
2023-08-24 10:26:09 +01:00
dni ⚡
fe88320f08
[CHORE] update mypy and new issues (#1892)
* [CHORE] update mypy and new issues

lnbits/cache.py:21: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
lnbits/extension_manager.py:210: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
lnbits/db.py:110: error: Only instance methods can be decorated with @property  [misc]
lnbits/tasks.py:152: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
lnbits/tasks.py:171: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
lnbits/core/services.py:520: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
lnbits/app.py:520: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
lnbits/app.py:525: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
lnbits/app.py:532: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]

* fix db.py
* fix mypy notes, type were not needed
2023-08-23 21:24:54 +02:00
callebtc
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
dni ⚡
eb0b06f98c
[DEV] add ruff for linting and combine linters into one workflow (#1875)
* remove unused and update black + precommit
* makefile add ruff remove unused
* F541 fix
* complete ruff ignore
* remove unused workflow and combine linters into one
add lnbits/static to ruff ignore
save preview and linelength for later
define target version for black
* ignore upgrades for mypy
* remove flake8
* ignore F401 for __init__ files
* unused pylint comment
* unused noqa
* ignore upgrades for black
* run linting on py3.9 and py3.10
* dont assume python
2023-08-19 07:38:04 +02:00
jackstar12
8a6e411a0d
[REFACTOR] payments sse endpoint (#1781)
* exclude sse from gzip

* refactor sse endpoint

* cleanup imports
2023-08-18 11:05:14 +01:00
jackstar12
1fd4d9d514
cancel all long-running tasks (#1793)
* add centralized task management

in order to properly cleanup all long-running tasks we have to keep a list of them

* use new task management functions

* unify shutdown events

* vlads suggestions

rename variable for create_task
wrap cancel() with try/catch

fixup

* rename func to coro

---------

Co-authored-by: dni  <office@dnilabs.com>
2023-08-18 10:25:33 +01:00
dni ⚡
65db43ace4
feat: catch wallet init exception, string formatting (#1846)
this catches exception on set_wallet_class and switches to VoidWallet if it fails
2023-08-18 10:23:57 +01:00
dni ⚡
905afc1f5c
FEAT: add installed extensions to log (#1857)
for immediate vision of installed extensions
2023-08-18 10:13:37 +01:00
dni ⚡
355806608b
[CHORE] E722 bare exception fix (#1871)
* [CHORE] E722 bare exception fix
remove all bare exceptions from codebase and change it in `.flake8`
2023-08-16 12:17:54 +02:00
jackstar12
2577ce7f81
add cache utility (#1790)
* add simple caching utility

* test cache

* remove prefix, default on get

* check expiry in pop aswell

* remove unnecessary type

* improve invalidation task

increase default interval to 10 seconds - doesnt have to check that often.
instead of recreating the dict everytime mutate the existing one
2023-08-02 14:13:31 +02:00
dni ⚡
a81a2b5a08
fix ugly printed error of uvicorn.error (#1833) 2023-07-24 13:25:47 +02:00
jackstar12
bc55d52ea2
Refactor get walletclass (#1776)
* move `get_wallet_class` to wallets module

* adjust imports, fix type issues

flake8
2023-06-27 16:11:00 +02:00
Arc
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
jackstar12
e6499104c0
Wallets refactor (#1729)
* feat: cleanup function for wallet

* update eclair implementation

* update lnd implementation

* update lnbits implementation

* update lnpay implementation

* update lnbits implementation

* update opennode implementation

* update spark implementation

* use base_url for clients

* fix lnpay

* fix opennode

* fix lntips

* test real invoice creation

* add small delay to test

* test paid invoice stream

* fix lnbits

* fix lndrest

* fix spark

fix spark

* check node balance in test

* increase balance check delay

* check balance in pay test aswell

* make sure get_payment_status is called

* fix lndrest

* revert unnecessary changes
2023-06-19 12:12:00 +02:00
Vlad Stan
af660fec14
fix: ext short description for pre-installed extensions (#1744)
* fix: update `installed_extensions` entry after the ext has been unzipped

* fix: show installedRelease description as fallback
2023-05-26 10:48:40 +01:00
Vlad Stan
80b803913f
feat: print extensions version on install/uninstall/reinstall (#1726) 2023-05-24 11:58:11 +01:00
dni ⚡
0b596c00ca
reduce max string length 2023-04-17 08:29:01 +02:00
dni ⚡
a9bdf24425
FEAT: use versioning for frontend (npm) and copy it to lnbits/static/vendor for easier updating (#1590)
* remove static/vendor

* add node dependencies

* add bolt11-decoder

* run npm install inside dockerimage

* only use bundle.js and bundle.css

* use node_modules for bundling vendor assets

* remove dead code

* make argument optional

* reintroduce vendor dir

* reintroduce vendor and single javascript files, minification

* wrong moment, remove minification

* lock packages with non critical issues

* black
2023-03-31 12:46:24 +02:00
dni ⚡
407a61cd29
add version to fastapi app and startup log (#1568)
* add version to fastapi app and startup log

* move version into settings

* remove unused dep
2023-03-30 14:19:45 +02:00
Vlad Stan
239f166a14 fix: format relative path 2023-03-20 16:07:20 +02:00
dni ⚡
8410776ffb
only make it fallback when adminui is enabled 2023-03-02 12:07:20 +01:00
dni ⚡
e93fbd24be
FEAT: add funding source fallback and VoidWallet warning for frontend 2023-03-02 12:03:58 +01:00
dni ⚡
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
Vlad Stan
0d5fef1cb9
Add redirect paths for extensions (#1532)
* feat: basic redirect to extension endpoint

* feat: filter by headers

* refactor: extract `middleware.py`

* fix: do not add twice the same extension to redirects

* chore: code clean-up
2023-02-22 10:12:16 +01:00
Vlad Stan
16a997663d
fix: activate default installed extensions (#1533) 2023-02-22 09:43:17 +01:00
Vlad Stan
61fb44a04e feat: add default extension install (LNBITS_EXTENSIONS_DEFAULT_INSTALL) 2023-02-16 10:48:12 +02:00
Pavol Rusnak
bc36e6bc4c
fix flake8 F541 (f-string is missing placeholders) 2023-01-30 11:46:44 +00:00
Pavol Rusnak
a0cc55c5a1
fix pylint C0209 (consider-using-f-string) 2023-01-30 11:46:43 +00:00
Vlad Stan
8ab4cb8c08 fix: restore installed extensions 2023-01-25 15:00:39 +02:00
Vlad Stan
46faa62b8b fix: upgrade vs install 2023-01-25 14:32:41 +02:00
Vlad Stan
b57e808198 chore: add extra log 2023-01-23 11:51:53 +02:00
Vlad Stan
b069fe17d8 chore: add comments for register_new_ext_routes 2023-01-20 17:48:52 +02:00
Vlad Stan
fa5d824eea refactor: remove redundant changes 2023-01-20 15:59:44 +02:00
Vlad Stan
ea31e148ae refactor: simplify download & extract logic 2023-01-20 15:55:58 +02:00
Vlad Stan
730017ed62 fix: import after renaming 2023-01-20 10:06:32 +02:00
Vlad Stan
478d74efc8 fix: separate lnbits_deactivated_extensions from lnbits_disabled_extensions` 2023-01-20 09:39:27 +02:00
Vlad Stan
0a7a589935 fix: call load_disabled_extension_list 2023-01-19 15:49:43 +02:00
Vlad Stan
6773f33ad1 fix: re-mount routes for restored extensions 2023-01-19 11:12:48 +02:00
Vlad Stan
aa006b66d1 feat: update pre-installed extensions on re-create 2023-01-19 10:15:56 +02:00
Vlad Stan
69b8dfa21f fix: mypy 2023-01-18 18:40:27 +02:00
Vlad Stan
ce1639792a fix: order of migrations 2023-01-18 18:35:02 +02:00
Vlad Stan
e52baab1c2 fix: register extension route after re-install 2023-01-18 17:38:51 +02:00
Vlad Stan
98735d79c7 fix: revert onstartup extension route init 2023-01-18 17:38:51 +02:00
Vlad Stan
1d2e994862 feat: download extensions if missing 2023-01-18 17:38:51 +02:00
Vlad Stan
0ab913e502 chore: code format 2023-01-18 17:38:36 +02:00
Vlad Stan
2edb9da387 fix: name conflict 2023-01-18 17:38:36 +02:00
Vlad Stan
795d05c109 refactor: extract extensions.py 2023-01-18 17:38:36 +02:00
Vlad Stan
ece7a82b3d fix: make function async 2023-01-18 17:38:36 +02:00
Vlad Stan
a6e3b5e049 feat: use hash for unique extension id 2023-01-18 17:38:36 +02:00
Vlad Stan
8f8ebbeeaa refactor: class rename and code format 2023-01-18 17:38:36 +02:00