* 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>
* 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
* readd lndgrpc
* debug logging
* Use TrackPaymentV2
* /v2/router/track
* lnd_router_grpc
* flag for blocking check
* error handling
* fix name
* regtest lndgrpc
* new test pipeline
* fix env
* check for description hash
* remove unnecessary asserts for clarity
* assume that description_hash is a hash already
* no lock
* description hashing in backend
* restore bolt11.py
* /api/v1/payments with hex of description
* comment
* refactor wallets
* forgot eclair
* fix lnpay
* bytes directly
* make format
* mypy check
* make format
* remove old code
* WIP status check
* LND GRPC docs
* restore cln to main
* fix regtest
* import
* remove unused import
* format
* do not expect ok
* check ok
* delete comments
before we were using requests which had no default timeouts, but httpx has a
default timeout of 5 seconds. should have noticed that earlier.
when the timeout expires we are left with a pending payment on the db with a
temporary checking_id so we can never know if it was completed or not.
this is still an issue, because technically a lightning payment may take 2 weeks
or more, and we must have a way to dispatch a payment and check for it later.
that should be the default (and we already do check for the payment status later,
so half of the work is done), but on the other hand backends like lnpay and
opennode do not give us a checking_id before the thing is already settled.
instead of multiple keys/macaroons with different permissions we request only one.
if someone wants to use lnbits with an invoice macaroon they're free to do it and
we will just fail on 'pay' methods, as before.
this also grandfathers the previous environment variables names so everything keeps
working without people having to change their setups.
in the meantime some bugs with lntxbot and c-lightning were fixed and the `requests`
dependency was eliminated because I can't organize myself into meaningful chunks of
changes.