Commit Graph

221 Commits

Author SHA1 Message Date
fiatjaf
85ec111ff0 return proper error codes on /lnurlscan
so the notification works.
2020-10-20 23:19:23 -03:00
fiatjaf
52619ecc0f improve querystring handling on lnurl fallback scheme. 2020-10-18 13:33:05 -03:00
fiatjaf
32d75f7a60 support the lnurl fallback scheme.
completing https://github.com/lnbits/lnbits/issues/63
2020-10-17 15:24:10 -03:00
fiatjaf
435f5405c6 minor prettier change. 2020-10-16 14:45:28 -03:00
fiatjaf
9cb58833ad make httpx calls async when doing them from view functions.
this is important so lnbits can call itself without hanging forever.

and these functions are already async so it should have been this way since ever.
2020-10-15 13:04:56 -03:00
fiatjaf
c81e61e4fe guards and safety timeouts around paymentChecker intervals. 2020-10-15 12:32:28 -03:00
fiatjaf
bdbb58b2b0 wrap memo columns in payments table. 2020-10-15 00:59:00 -03:00
fiatjaf
be7d36214a use payments/sse on the core wallet UI.
still fallback to the invoice polling (now with a 5 seconds interval
because less than that is too annoying).

this fixes issues with /lnurlwallet invoices not getting paid in time,
so we update the UI automatically when they do get paid.

(see https://t.me/lnbits/7069)
2020-10-15 00:18:57 -03:00
fiatjaf
d528d4e09e fix: wallet layout. 2020-10-14 23:13:55 -03:00
fiatjaf
ec4b558638 fix: domain variable assignment in pay_lnurl. 2020-10-14 22:44:23 -03:00
fiatjaf
e1501e8ed6 fix bug with lnurl-withdraw dialog being skipped directly to the previous invoice shown. 2020-10-13 15:20:58 -03:00
fiatjaf
1529ebb689 lnurlpay comment. 2020-10-13 15:18:34 -03:00
fiatjaf
bcdc065cc0 mypy fixes. 2020-10-13 14:46:23 -03:00
fiatjaf
cf0bd7ece8 displaying lnurlpay success_actions. 2020-10-13 13:57:26 -03:00
fiatjaf
8d135489ab fix: invoice parsing JS bug from the lnurl implementation. 2020-10-12 23:21:45 -03:00
fiatjaf
69063190ab also catch httpx.ConnectError whenever we do catch httpx.RequestError. 2020-10-12 23:21:45 -03:00
fiatjaf
bc2207ba27 actually paying and withdrawing with lnurl. 2020-10-12 23:21:45 -03:00
fiatjaf
3cd15c40fc lnurl-pay and lnurl-withdraw UI. 2020-10-12 23:21:45 -03:00
fiatjaf
7a5159f293 send/create/scan buttons for clear LNURL support. 2020-10-12 23:21:45 -03:00
Arc
fa8713de17 move scan to outside of receive. 2020-10-12 23:21:45 -03:00
fiatjaf
b1f30390b0 retrieve preimage from wallet backends, save it and show on UI dialog.
closes https://github.com/lnbits/lnbits/issues/77
2020-10-12 23:19:16 -03:00
fiatjaf
2894944b1e pending=False on /sse payments. 2020-10-09 22:05:39 -03:00
fiatjaf
31820e041c /sse returns payment as objects instead of arrays. 2020-10-09 21:08:01 -03:00
fiatjaf
9185342c72 simplify environment variables required.
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.
2020-10-08 16:03:21 -03:00
fiatjaf
0b1f3c22e0 lndhub: fix "token" -> "refresh_token". 2020-10-06 21:53:43 -03:00
fiatjaf
c5352c0309 register channel listeners instead of callbacks.
makes for a little less black magic and more reasonable use of nurseries
and less unnecessary pseudo-requests.
2020-10-06 01:50:56 -03:00
fiatjaf
95e8573ff8 SSE endpoint for paid invoices.
also move very essential stuff from core/tasks.py to tasks.py so things
are more organized.
2020-10-06 00:40:18 -03:00
fiatjaf
16541d40c6 show more data in txinfo modal and fee on main table.
- also center-align icons in main table.
- and use "x time ago" instead of raw dates by default in main table
  (raw date is accessible on a tooltip, on the modal and on the CSV export).
2020-10-05 22:38:06 -03:00
fiatjaf
5ead82f57c fix /lnurlwallet again. db.commit() and wait 3 seconds.
should finally fix https://github.com/lnbits/lnbits/issues/103
2020-10-05 20:33:01 -03:00
fiatjaf
9994e61615 migrate to trio so c-lightning sockets stop hanging. 2020-10-04 12:06:20 -03:00
fiatjaf
90c640b659 fix async so now it is a mess that works. 2020-10-04 12:05:01 -03:00
fiatjaf
28e6f40bea async fixes on _invoice_listener. 2020-10-04 12:05:01 -03:00
fiatjaf
2c92205703 async invoice listeners through webhooks: lnpay and opennode. 2020-10-04 12:04:49 -03:00
fiatjaf
74117ffc57 lnurlp webhooks. 2020-10-04 12:04:49 -03:00
fiatjaf
04222f1f01 basic invoice listeners. 2020-10-04 12:04:47 -03:00
fiatjaf
88b8826bfd fix balance calculation vue glitch. 2020-09-29 20:04:02 -03:00
fiatjaf
211ac0391b overengineered async fix for /lnurlwallet internal hanging. 2020-09-29 18:24:08 -03:00
fiatjaf
e0b8470d40 show unpaid invoices, balance calculated on server-side so isn't affected. 2020-09-29 15:43:11 -03:00
fiatjaf
39cd96594e pass appropriate parameters to create_payment on lnurlwallet. 2020-09-24 13:09:02 -03:00
fiatjaf
75047c5bc3 fix static extensions js url. 2020-09-16 20:21:42 -03:00
fiatjaf
f01028eac7 migrate from flask to quart.
also remove all flaskiness from static file serving.
and reference all vendored scripts on the base tempĺate for simplicity.
2020-09-14 16:03:25 -03:00
fiatjaf
e6ad42dbe1 update prettier to 2.1.1 2020-09-14 09:14:51 -03:00
fiatjaf
6210305791 checking pending invoices and payments from lndhub interface. 2020-09-12 21:55:13 -03:00
fiatjaf
5ac91ee2cf db commits at the right places when sending payments.
fixing vulnerabilities introduced in https://github.com/lnbits/lnbits/pull/90
2020-09-11 21:25:44 -03:00
fiatjaf
4855e2cd3d make every request a database transaction. 2020-09-11 14:17:09 -03:00
fiatjaf
487f082eb2 take extra care on check_internal() 2020-09-11 14:17:09 -03:00
fiatjaf
130beaf38a fix undeclared ok error. 2020-09-06 23:39:46 -03:00
fiatjaf
ab6229806c fix: column is called hash, not payment_hash. 2020-09-06 22:15:29 -03:00
Eneko Illarramendi
1bc5e144d3 refactor: clean up __init__ file following some Flask conventions
Flask extensions are loaded in a way that makes them easily reusable by blueprints.
In this commit we are also adding `environs` to manage .env and settings:
breaking changes!

- FLASK_APP=lnbits.app
- LNBITS_ALLOWED_USERS needs to be empty now to allow all users (NOT "all")
2020-09-06 21:06:01 -03:00
fiatjaf
c965bca41d migration tracking. 2020-09-04 21:33:30 -03:00
Eneko Illarramendi
f238b3d1ef fix: TypedDict import 2020-09-04 21:24:30 +02:00
Eneko Illarramendi
23cfe0d417 chore: update github workflows 2020-09-03 23:10:41 +02:00
fiatjaf
dc3d96c6a8 fix many mypy complaints, specially on bolt11.py 2020-09-02 22:21:56 -03:00
fiatjaf
ce28db76c9 add a dialog with payment details for each payment.
for outgoing payments this needs a preimage to be good,
but we don't have it yet because we don't get it from
backends.
2020-09-02 19:19:19 -03:00
fiatjaf
197af922d0 use {"tag": ext} for extension-related payments. 2020-09-02 12:44:54 -03:00
fiatjaf
4447a48724 deleting expired invoices based on their actual expiry date.
also fixes a possible bug that could have caused pending outgoing
payments to be deleted and affecting the balance. probably never happened.
2020-09-02 11:10:48 -03:00
fiatjaf
d2650d6e2c don't try to check payments that start with temp_ or internal_. 2020-09-02 11:10:48 -03:00
fiatjaf
bf3c44b3c4 extra fields on apipayments + index payments by payment_hash 2020-09-02 11:10:48 -03:00
arcbtc
c96b22664e internal payments. 2020-09-02 11:10:48 -03:00
fiatjaf
b4a6b45645 only check pending payments on "check_pending". 2020-08-31 22:55:19 -03:00
fiatjaf
fadddc995a get_wallet_payments with more fine-grained, explicit filters. 2020-08-31 22:16:19 -03:00
fiatjaf
d09e624eb6 fix: wallet.balance computed property self-reference. 2020-08-31 16:19:27 -03:00
fiatjaf
68b0adfe66 fix: description_hash as an optional param to create_invoice.
fixes https://github.com/lnbits/lnbits/issues/74
2020-08-30 23:54:50 -03:00
fiatjaf
660d56d400 run black on everything. 2020-08-30 23:19:43 -03:00
fiatjaf
79d5befe0c mypy on Makefile and apply prettier. 2020-08-29 14:10:26 -03:00
fiatjaf
24dc6e5415 fix validation rules so description_hash works. 2020-07-04 22:28:08 -03:00
fiatjaf
bc27293315 support description_hash across all APIs. 2020-07-03 20:04:04 -03:00
Dennis Reimann
c3281399d2
Improve setup instructions and README
- README cleanups and link to documentation
- Improve dev setup instructions
- Fix js linting errors
- Move local setup instructions to installation docs
- Project link fix, closes #42
- Notes about frontend
- Clarify different LND backends
2020-06-12 20:58:37 +02:00
Eneko Illarramendi
aed2414f3a fix: show better errors when a LNURL-withdraw wallet cannot be created, closes #39 2020-05-18 06:33:02 +02:00
Eneko Illarramendi
8add56a24c feat: allow limiting the use of LNbits to some user uuids
The `LNBITS_ALLOWED_USERS` env var can be used to limit access
to the application to some uuids only. "all" gives open access.
UUIDs should be comma separated.
2020-05-09 22:30:33 +02:00
Arc
6f4cac0c41
Update index.html 2020-05-08 22:19:43 +01:00
Eneko Illarramendi
42d307adf9
Merge pull request #38 from fiatjaf/adminkey-to-inkey
allow inkey endpoints to be accessed with adminkeys.
2020-05-05 11:09:02 +02:00
fiatjaf
c3ce18c8d9 allow inkey endpoints to be accessed with adminkeys. 2020-05-05 05:46:05 -03:00
Eneko Illarramendi
a61d346669 chore: update js vendors 2020-05-04 15:33:39 +02:00
fiatjaf
4730500ed7 apply prettier to everything. 2020-05-03 13:55:17 -03:00
Eneko Illarramendi
083f7a0a8d chore: use standard library's HTTP status codes 2020-05-03 15:57:05 +02:00
Robert Habermann
0847a1c933 add lightning scheme check 2020-04-27 23:13:42 +02:00
Eneko Illarramendi
c3e337a319 fix: mypy errors 2020-04-26 16:58:29 +02:00
Eneko Illarramendi
efd2cb7170 fix: use a fee reserve and actual wallet fees 2020-04-24 22:45:09 +02:00
Eneko Illarramendi
97f4fabea1 fix: create temporal payments to keep balance updated 2020-04-24 14:56:10 +02:00
Eneko Illarramendi
897644956a feat: only dhow disclaimer if SERVICE_FEE has been set 2020-04-23 21:25:55 +02:00
Eneko Illarramendi
e461e34fc0 feat(vue): move confirmDialog to LNbits.utils so we can reuse the styling 2020-04-23 07:32:45 +02:00
Eneko Illarramendi
1978cafe44 chore: update supporter logos 2020-04-23 07:23:45 +02:00
Arc
cd22aaded9
Update index.html 2020-04-22 20:55:51 +01:00
Eneko Illarramendi
498eceeb46 feat: use dynamic root in api docs 2020-04-22 21:49:31 +02:00
Eneko Illarramendi
b1da103080 chore: minor tweaks 2020-04-21 23:47:21 +02:00
Eneko Illarramendi
fd4dc6c48f chore: remove pending macaroon mentions 2020-04-21 23:22:01 +02:00
Eneko Illarramendi
f12f52db2d fix: homepage bug 2020-04-21 23:17:11 +02:00
Eneko Illarramendi
efb9deb028 feat: remove FEE_RESERVE 2020-04-21 23:17:11 +02:00
Eneko Illarramendi
5806beaeb7 feat(core): move disclaimer to wallet page 2020-04-21 23:15:50 +02:00
Eneko Illarramendi
efbba20872 style: minor tweaks 2020-04-21 23:13:37 +02:00
Eneko Illarramendi
93e51a7398 fix: wallet button 2020-04-21 23:13:37 +02:00
Eneko Illarramendi
364b6dc857 fix(vue): use @submit to send forms, and catch users pressing return 2020-04-21 08:16:56 +02:00
Arc
409122271a
Update index.html 2020-04-20 15:29:01 +01:00
Arc
07b4d52432
Update index.html 2020-04-20 15:27:46 +01:00
Arc
ae778c19a1
Update index.js 2020-04-20 15:27:02 +01:00
Arc
65c17488e3
Update index.html 2020-04-20 14:19:38 +01:00
Arc
ca08dc2302
Update index.html 2020-04-20 13:48:46 +01:00
Eneko Illarramendi
57c26ed2bb chore: outline some buttons 2020-04-18 23:17:16 +02:00
Eneko Illarramendi
d4c9043278 feat(core): delete expired payments 2020-04-17 21:13:57 +02:00
Eneko Illarramendi
d03e472cc2 feat(core): add search to payments table 2020-04-17 21:13:32 +02:00
Eneko Illarramendi
fd4dddda6e chore: rename api-key-macaroon 2020-04-16 20:58:16 +02:00
Eneko Illarramendi
dd23b20090 chore: various tweaks 2020-04-16 20:58:16 +02:00
Eneko Illarramendi
490e166f75 refactor: improve database migrations 2020-04-16 20:58:16 +02:00
Arc
6651122bb6
Update _api_docs.html 2020-04-16 12:04:17 +01:00
Eneko Illarramendi
af5269e239 refactor: add core.utils for creating and paying invoices
This methods can be used by extensions too.
2020-04-11 23:15:24 +02:00
Eneko Illarramendi
4397a6cab3 feat: use cerberus schemas to validate POST data 2020-04-11 20:16:54 +02:00
Eneko Illarramendi
fb7dfb3a32 chore: minor fixes 2020-04-05 12:19:25 +02:00
Arc
089793a486
Update wallet.js 2020-04-04 23:38:52 +01:00
Arc
c866d0572e
Added top margin to modals 2020-04-04 22:53:28 +01:00
Eneko Illarramendi
a81de95f73 chore(vue): use g for consistency with Flask 2020-04-03 22:38:50 +02:00
Arc
46c11f3946
Update wallet.html 2020-04-03 13:16:23 +01:00
Arc
8fe9864e43
Update wallet.html
Changed value to amount, added a curl example
2020-04-03 12:57:36 +01:00
Eneko Illarramendi
649cc888ab refactor: /wallet tweaks 2020-04-01 22:18:46 +02:00
Eneko Illarramendi
d03785558b refactor: a wallet is a wallet is a wallet 2020-03-31 19:05:25 +02:00
Eneko Illarramendi
75d97ddfc1 refactor: camera ready 2020-03-10 23:12:22 +01:00
Eneko Illarramendi
49addb8d56 refactor: breaking bad 2020-03-08 23:00:41 +01:00
Eneko Illarramendi
d862b16ee6 refactor: "payments" is the name, and API updates 2020-03-07 22:27:00 +01:00
Eneko Illarramendi
9382381144 chore: initial version of tx chart 2020-03-05 23:01:37 +01:00
Eneko Illarramendi
f98a5040ac refactor: decorators, models and more broken bits 2020-03-04 23:11:15 +01:00
Eneko Illarramendi
9e90aabead refactor: use Flask Blueprints to organize extensions
- extensions are now blueprints: keep views, templastes and statics in the same folder
- increase app security using `flask-talisman`
- whenever possible use {{ url_for }} for links between pages
- remove references to non-existing JavaScript code
- add missing favicon.ico
2020-01-31 21:07:05 +01:00