* F821: undefine name
disabled and logged webhook_listener for opennode and lnpay because they are obviously not working
* E402: module level import not at top of file
* E721 fixes, only popped up for python3.9 not 3.10
* tests: hold invoice tests pending during payment
* sigh...
* ok
* hash preimage
* preimage_hash == payment_hash
* should error
* check that payment is gone
* cancel task while in-flight
* lnbits endpoing return error
* return error
* add both options
* fix list
* respond to error
* return false if payment status errors
* outgoing invoice should be deleted after one status check
* test api_payments_create error
* add hold invoices and basic test
* run request in parallel
* create_task
* dont cancel it
---------
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
* add send_payment_notification service
payment notifications are sent from multiple places with inconsistent and incomplete data
* adopt new send_payment_notification service
* add tests
* better checking
* flake8 fix
* make format
* invoices scope are function for tests
* invoice back to sessionbut keep real_invoice for now
* make format
* comment
* get payment by checking id and test
* 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>
* initial backend support
* implement payments pagination on frontend
* implement search for payments api
* fix pyright issues
* sqlite support for searching
* backwards compatability
* formatting, small fixes
* small optimization
* fix sorting issue, add error handling
* GET payments test
* filter by dates, use List instead of list
* fix sqlite
* update bundle
* test old payments endpoint aswell
* refactor for easier review
* optimise test
* revert unnecessary change
---------
Co-authored-by: dni ⚡ <office@dnilabs.com>
* BUG: proper exception for paid interal invoices
* test should now fail, because we pay invoice twice, and should also work in regtest
* sorting
* unpack check_internal
* introduce another crud fn for checking internal paid payment
* rename
---------
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
* 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>
* initial commit and still draft, ready for review
* forgot to uncomment this line
* fee estimation and blockheight
* resolve conversation with michael, to use mempool websockets instead of boltz status event
* Update lnbits/extensions/boltz/boltz.py
Co-authored-by: michael1011 <me@michael1011.at>
* add status to swaps, add sorting and data into listing
* add swap status checks, change urls to docker test setup, dynamic minimum and maximum limits
* fix docker hosts for development
* add api endpoints to _api_docs
* add wallet name and id, to list and status information
* fix status_update for reverse_swaps
* chore: format with black
* more blackformatting and refactoring create_swap()
* fix variable bug
* check if swap is already refunded
* use create_task instead of ensure_future
* add mempool and boltz urls depending on DEBUG .env
* raise exception in mempool fails
* fix onchain txs, sending funds to wrong address and add a refund address for normal swaps beforehand
* add status to swaps, add sorting and data into listing
* add swap status checks, change urls to docker test setup, dynamic minimum and maximum limits
* add wallet name and id, to list and status information
* fix status_update for reverse_swaps
* chore: format with black
* use create_task instead of ensure_future
* add mempool and boltz urls depending on DEBUG .env
* fix onchain txs, sending funds to wrong address and add a refund address for normal swaps beforehand
* black formatting
* add some logging with loguru, and remove function duplication
* cleanup readme
* updates/suggestions from calle
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
* remove unused comments
* Update API Endpoints
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
* un-factor get_boltz_pairs
* added a explaination for the onchain tx
* remove unused template file
* rename api endpoints
* fix isort and prettier
* more verbose logging!!
* add boltz to mock_data.zip
* new mockdata
* remove comment
* better readme
* fix mempool urls
* change /refund /check /status to post requests
* first step in tests2
* add first tests
* change refund,check,status to post requests
* next try on tests
* overall code improvements
* just testing tests
* throw http exceptions in views_api
* require admincheck for refund,check,status and added fastapi documentation for those
* added more tests
* black
* many code improvements
* adding tests
* temp fix test
* fix race condition when pay_invoice fails
* test are working
* add boltz env variables
* add startup check, bugfixes, improvements
* improve on status checking
* remove check_invoice_status
* more fixes and tests
* testing testing testing
* make tests run again inside regtest
* fix bad error :O
* fix postgres boolean bug and add swap test
* Update README.md
Update README.md
Update README.md
Update README.md
* some mypy
* blacked
* the missing commit?
* fix api_docs readme link
* better refunding error catching
fix
* check swaps now also shows pending reverse swap, ui improvements, tooltips
* add backend check for boltz limits
fixup
* many improvements, startup check for swaps working, reverse needs more testing
* little last fixes
* remove unused logic
* fastapi documentation
fixup
* formatting and remove unused tests
* fix test
* fix swapstatus model
* Update lnbits/extensions/boltz/tasks.py
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
* Update lnbits/extensions/boltz/views_api.py
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
* balance check msg, format
* fix mypy data override
* fix swapstatus, remove can refund column
* Update lnbits/extensions/boltz/README.md
Co-authored-by: michael1011 <me@michael1011.at>
* empty lines
* fix error message when swap is not found
* remove preimage_hash from database
* fix api_docs html
fix api_docs html
* catch boltz network exceptions better
* formatting
* check for timeout on swap at get request
Co-authored-by: michael1011 <me@michael1011.at>
Co-authored-by: fusion44 <some.fusion@gmail.com>
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
* another testcase the fails similar to #847
* proper fix
* revert to statuscode 401 and code improvements @calle
Co-authored-by: dni <dni.khr@gmail.com>
* added test for empty post data, for issue #847
* black
* fixed the failing testcase
* Update lnbits/decorators.py
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
Co-authored-by: dni <dni.khr@gmail.com>
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
* new argument: unhashed_description
* accept in api
* set unhashed_description for memo case
* bolt11.py: dont be like CLN, accept the hash
* send hash to lnd in b64
* fix cln
* skip descr_hash for cln
* skip
* format
* black and isort for tests
* black and isort for build
* use poetry in Makefile, update pyproject.toml dependencies and add configs for black, pytest, mypy, isort there
* switching github workflow to poetry
* set mininum version to python 3.7
* fix tests
* add types-protobuf to dev packages
* fix cln regtest
* update docs
* try fix 1
* mypy fix2
* fix isort formatting workflow
* add prettier to dev docs
* multiple valid python version for pyproject
* update poetry.lock
* remove development installation, not needed anymore
* fix migration workflows
* format into one test
* fix yaml
* fix pipeline
* fix pipeline
* fix again
* fix
* rename checks
* remove venv tests
* venv test once
Co-authored-by: dni <dni.khr@gmail.com>
* check for description hash
* remove unnecessary asserts for clarity
* assume that description_hash is a hash already
* no lock
* restore bolt11.py
* /api/v1/payments with hex of description
* comment
* Adds tests for GET /wallet
* Update `httpx` to `0.23.0` and `http-core` to `0.15.0` in `venv` installation path
* Fix `secp256k1 = "==0.14.0"` and `cffi = "==1.15.0"`
* return error for wrong key
* payment check use key dependency
* more expressive error
* re-add optional key
* more tests
* more
* more granular
* more testing
* custom event_loop
* tests work
* fix lots of mypy errors
* test_public_api
* both files
* remove unused import
* tests
* tests working
* rm empty file
* minimal test
* set FAKE_WALLET_SECRET="ToTheMoon1"
* set FAKE_WALLET_SECRET="ToTheMoon1"
* trial and error
* trial and error
* test postgres
* test postgres
* test postgres
* test postgres
* test postgres
* test postgres
* test build
* skip mypy