Commit graph

34 commits

Author SHA1 Message Date
Patrick Mulligan
8657e221c6 feat: add support for paying amountless BOLT11 invoices
Some checks are pending
LNbits CI / lint (push) Waiting to run
LNbits CI / test-api (, 3.10) (push) Blocked by required conditions
LNbits CI / migration (3.11) (push) Blocked by required conditions
LNbits CI / test-api (, 3.11) (push) Blocked by required conditions
LNbits CI / test-api (, 3.12) (push) Blocked by required conditions
LNbits CI / test-api (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.10) (push) Blocked by required conditions
LNbits CI / test-api (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.11) (push) Blocked by required conditions
LNbits CI / test-api (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.12) (push) Blocked by required conditions
LNbits CI / test-wallets (, 3.10) (push) Blocked by required conditions
LNbits CI / test-wallets (, 3.11) (push) Blocked by required conditions
LNbits CI / test-wallets (, 3.12) (push) Blocked by required conditions
LNbits CI / test-wallets (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.10) (push) Blocked by required conditions
LNbits CI / test-wallets (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.11) (push) Blocked by required conditions
LNbits CI / test-wallets (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.12) (push) Blocked by required conditions
LNbits CI / test-unit (, 3.10) (push) Blocked by required conditions
LNbits CI / test-unit (, 3.11) (push) Blocked by required conditions
LNbits CI / test-unit (, 3.12) (push) Blocked by required conditions
LNbits CI / test-unit (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.10) (push) Blocked by required conditions
LNbits CI / test-unit (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.11) (push) Blocked by required conditions
LNbits CI / test-unit (postgres://lnbits:lnbits@0.0.0.0:5432/lnbits, 3.12) (push) Blocked by required conditions
LNbits CI / migration (3.10) (push) Blocked by required conditions
LNbits CI / regtest (BoltzWallet, 3.10) (push) Blocked by required conditions
LNbits CI / regtest (CoreLightningRestWallet, 3.10) (push) Blocked by required conditions
LNbits CI / regtest (CoreLightningWallet, 3.10) (push) Blocked by required conditions
LNbits CI / regtest (EclairWallet, 3.10) (push) Blocked by required conditions
LNbits CI / regtest (LNbitsWallet, 3.10) (push) Blocked by required conditions
LNbits CI / regtest (LndRestWallet, 3.10) (push) Blocked by required conditions
LNbits CI / regtest (LndWallet, 3.10) (push) Blocked by required conditions
LNbits CI / jmeter (3.10) (push) Blocked by required conditions
codeql / analyze (push) Waiting to run
Add ability to pay BOLT11 invoices that don't have an embedded amount
by specifying the amount at payment time via the `amount_msat` parameter.

Changes:
- Add `Feature.amountless_invoice` to wallet base class for capability detection
- Update `Wallet.pay_invoice()` signature with optional `amount_msat` parameter
- Implement amountless invoice support in LND REST and LND gRPC wallets
- Update payment service layer to validate and pass through amount_msat
- Add `amount_msat` field to CreateInvoice API model
- Update all wallet implementations with new method signature
- Add tests for amountless invoice payment flow

Usage: POST /api/v1/payments with `amount_msat` when paying amountless invoices

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 19:43:50 +01:00
Vlad Stan
5f1cfc0e37
[perf] send payment notifications in background (#3588) 2025-11-26 18:53:10 +01:00
dni ⚡
0f4ae5da86
feat: create wallet if user does not have one (#3566) 2025-11-25 16:18:45 +01:00
Vlad Stan
d55e2a0e1f
[fix] user sorting performance (#3561) 2025-11-25 09:16:35 +02:00
Vlad Stan
39c33699af
[feat] user assets (#3504) 2025-11-12 14:30:27 +02:00
Ben Weeks
b54eedee84
feat: Shared Wallets/Joint Accounts (Issue #3297) (#3376) 2025-11-07 22:25:03 +02:00
Vlad Stan
b9de754598
fix: exclude (soft) deleted wallets when creating an invoice (#3439) 2025-10-21 14:59:04 +03:00
dni ⚡
256a8098c6
chore: get rid of mypy notes and typecheck more functions (#3257) 2025-07-15 11:15:12 +02:00
dni ⚡
35e2c4b0a7
fix: update success status (#3244)
Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com>
2025-07-15 11:14:25 +02:00
dni ⚡
c4c03d96a3
test: add regtest testcase for no route failure (#3189) 2025-07-08 10:17:25 +02:00
dni ⚡
b4b37cd733
fix: circular import on handle_fiat_payments (#3226) 2025-07-08 10:17:23 +02:00
Vlad Stan
695e9b6471
[feat] Add stripe payments (#3184) 2025-07-08 10:17:19 +02:00
blackcoffeexbt
edb7d66efc
feat: Add trimmed mean filtering for exchange rate outlier detection (#3206)
Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com>
2025-06-25 13:16:00 +03:00
Vlad Stan
375b95c004
fix: allow ports for domains (#3171) 2025-05-26 11:35:02 +03:00
Vlad Stan
39e4fa724a
test: additional cases for internal payments (#3155)
Co-authored-by: dni  <office@dnilabs.com>
2025-05-13 13:48:47 +03:00
dni ⚡
3b350858c7
refactor: untangle lnd's macaroon encryption with AESCipher class (#3152) 2025-05-13 12:07:38 +02:00
Vlad Stan
3529f9152f
fix: better differentiation between UNAUTHORIZED and FORBIDDEN (#3139) 2025-05-05 10:55:58 +02:00
PatMulligan
51bf344d65
[FIX] Fix database compatibility issue in search query builder for payments filter (#3090)
Co-authored-by: dni  <office@dnilabs.com>
Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com>
2025-05-02 10:45:35 +03:00
Vlad Stan
e339bb6181
[feat] fetch all payments for user (#3132) 2025-04-29 13:52:07 +03:00
Vlad Stan
6c2b312c92
fix: webhook call on invoice pay (#3119) 2025-04-28 12:28:27 +03:00
dni ⚡
1323a2005b
feat: cleanup on library dir creation and upload endpoints (#3069) 2025-04-01 10:27:11 +03:00
Vlad Stan
30cf6913af
[feat]: invoice amount settings (#2990) 2025-02-24 14:45:17 +02:00
Vlad Stan
b164317121
[feat] access control lists (with access tokens) (#2864) 2025-01-16 17:25:27 +02:00
dni ⚡
3a2cf12052
fix: get_payments where clause does query wrong payments including tests (#2844)
* fix: get_payments where clause does query wrong payments (#2841)
2024-12-19 10:22:37 +01:00
dni ⚡
291c69e470
chore: update to latest pytest (#2800) 2024-12-11 11:39:28 +02:00
Vlad Stan
ba5f79da2d
refactor: extract models (#2759) 2024-11-05 13:26:12 +02:00
dni ⚡
acb1b1ed91
fix: add list handling (#2758) 2024-11-01 11:12:18 +02:00
dni ⚡
2940cf97c5
feat: parse nested pydantic models fetchone and fetchall + add shortcuts for insert_query and update_query into Database (#2714)
* feat: add shortcuts for insert_query and update_query into `Database`
example: await db.insert("table_name", base_model)
* remove where from argument
* chore: code clean-up
* extension manager
* lnbits-qrcode  components
* parse date from dict
* refactor: make `settings` a fixture
* chore: remove verbose key names
* fix: time column
* fix: cast balance to `int`
* extension toggle vue3
* vue3 @input migration
* fix: payment extra and payment hash
* fix dynamic fields and ext db migration
* remove shadow on cards in dark theme
* screwed up and made more css pushes to this branch
* attempt to make chip component in settings dynamic fields
* dynamic chips
* qrscanner
* clean init admin settings
* make get_user better
* add dbversion model
* remove update_payment_status/extra/details
* traces for value and assertion errors
* refactor services
* add PaymentFiatAmount
* return Payment on api endpoints
* rename to get_user_from_account
* refactor: just refactor (#2740)
* rc5
* Fix db cache (#2741)
* [refactor] split services.py (#2742)
* refactor: spit `core.py` (#2743)
* refactor: make QR more customizable
* fix: print.html
* fix: qrcode options
* fix: white shadow on dark theme
* fix: datetime wasnt parsed in dict_to_model
* add timezone for conversion
* only parse timestamp for sqlite, postgres does it
* log internal payment success
* fix: export wallet to phone QR
* Adding a customisable border theme, like gradient (#2746)
* fixed mobile scan btn
* fix test websocket
* fix get_payments tests
* dict_to_model skip none values
* preimage none instead of defaulting to 0000...
* fixup test real invoice tests
* fixed pheonixd for wss
* fix nodemanager test settings
* fix lnbits funding
* only insert extension when they dont exist

---------

Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com>
Co-authored-by: Tiago Vasconcelos <talvasconcelos@gmail.com>
Co-authored-by: Arc <ben@arc.wales>
Co-authored-by: Arc <33088785+arcbtc@users.noreply.github.com>
2024-10-29 09:58:22 +01:00
Vlad Stan
ae4eda04ba
test: more payment tests (#2738)
* test: pay_invoice
2024-10-17 10:27:36 +02:00
Vlad Stan
a58deff70c
feat: block pay invoice (#2727) 2024-10-01 17:17:42 +03:00
dni ⚡
21d87adc52
mega chore: update sqlalchemy (#2611)
* update sqlalchemy to 1.4
* async postgres

---------

Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
2024-09-24 10:56:03 +02:00
Vlad Stan
5f4f1288d7
Fix overlapping redirect paths (#2671) 2024-09-11 12:41:37 +03:00
dni ⚡
00f39a2007 test: add unit for fee_reserve and service_fee
:)

sorting
2024-04-22 11:38:24 +02:00
dni ⚡
e607ab7a3e
test: restructure tests (#2444)
unit, api, wallets
* only run test-api for migration
2024-04-19 13:22:06 +02:00