* get unsigned blinded messages for output duplicate check
* bm regression tests (#827)
* fix last entry
* test for error from error struct
* rename tests, fix second regression test, add descriptive comments.
* check for error message
* one more test
---------
Co-authored-by: lollerfirst <43107113+lollerfirst@users.noreply.github.com>
Co-authored-by: lollerfirst <lollerfirst@gmail.com>
* fix: only one melt_quote with shared checking_id is allowed to be in a pending state.
fix mypy
add comprehensive tests
remove SQL unique index
remove test db constraint
fix lock statement
remove `test_regtest_pay_mpp_incomplete_payment`
format
* remove `test_set_melt_quote_pending_with_outputs`
* client self-rug mitigation
* fix
* format
* DB level check: error if payment reference paid or pending
* fix test
* comments
* restore
* restore
---------
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
* feat: implement exponential backoff for paid_invoices_stream across all Lightning backends
- Add exponential backoff retry logic to CLN REST, LND REST, and LND gRPC backends
- Start with 1 second delay, exponentially increase up to 5 minutes maximum
- Reset delay to 1 second on successful reconnection
- Improve error logging to include retry delay information
- Replace fixed delays with adaptive backoff to handle network issues gracefully
- Prevents system overload during persistent connection problems
Resolves issues with rapid reconnection attempts that could overwhelm Lightning nodes during network instability.
* remove unused import
* feat: extend exponential backoff to all remaining backends and invoice listener
- Implement exponential backoff in LNbits paid_invoices_stream for both SSE and WebSocket modes
- Add exponential backoff guidance comments to Blink and Strike backends (not implemented)
- Apply exponential backoff to invoice_listener in tasks.py that calls paid_invoices_stream
- Ensure consistent retry behavior across all Lightning backend integrations
- Improve system resilience during network interruptions and backend failures
All backends and the invoice listener now use the same exponential backoff strategy:
- Start with 1 second delay, exponentially increase up to 5 minutes maximum
- Reset delay to 1 second on successful reconnection
- Enhanced error logging with retry delay information
* blink + strike remove comments
* remove hardcoded values in favor of settings
* immediate first retry
* settings
* fix name settings
* management rpc
* hook up the RPC server
* working
* format
* update build script fix import error
* remove accidental commit of vscode extension data
* working ✔
* \n
* add get mint quote get melt quote
* gRPC cli update quotes commands
* update mint melt quotes from cli
* comment under get cli command group
* keyset rotation not yet implemented
* try fix
* change back contact info default to be empty list
* fix import
* add server mTLS
* ll
* script for generating certificates
* rename settings
* move generation script
* do not save TTL expiry into Cache object, rather always load from settings.
* update lightning fees
* update auth limits
* auth rate limit cli
* optional arguemnts
* better error messages
* tests for db update mint/melt quotes
* start mint rpc tests
* add tos_url field to get-info grpc response
* format checks
* add types to click groups where it's needed
* tests on updating quotes
* fix tests
* skip updating mint quote state if on regtest
* test edge case
* unified test_add_remove_contact
* mark pytest-asyncio
* fix missing db argument
* hopefully no more silly errors
* fix test_db_update_mint_quote_state
* pass in the quote id string.
* add keyset rotation
* test for keyset rotation through gRPC command
* fix logger warning
* remove rotation test because it breaks other tests
* use different bolt11 invoices
* assert returned melt quote has quote
* is_postgres
* try different things
* skip if deprecated api
* format checks
* update .gitignore
* default location for certificates
* wip store balance
* store balances in watchdog worker
* move mint_auth_database setting
* auth db
* balances returned as Amount (instead of int)
* add test for balance change on invoice receive
* fix 1 test
* cancel tasks on shutdown
* watchdog can now abort
* remove wallet api server
* fix lndgrpc
* fix lnbits balance
* disable watchdog
* balance lnbits msat
* test db watcher with its own database connection
* init superclass only once
* wip: log balance in keysets table
* check max balance using new keyset balance
* fix test
* fix another test
* store fees in keysets
* format
* cleanup
* shorter
* add keyset migration to auth server
* fix fakewallet
* fix db tests
* fix postgres problems during migration 26 (mint)
* fix cln
* ledger
* working with pending
* super fast watchdog, errors
* test new pipeline
* delete walletapi
* delete unneeded files
* revert workflows
* lets check if this gets stuck with postgres or not
* check if it works if I add sleeps
* replace startup_ledger with await ledger._check_pending_proofs_and_melt_quotes() in tests
* fix typo to trigger tests again
* manage state of proofs
* test set proofs unreserved
* melt recovers state on error
* fix wallet test
* fix tests
* fix another test
* get_mint_quote returns MintQuote
* fix tests
* refactor
* fix deprecated tests
* add new unset type
* move keysets methods into newly created `LedgerKeysets` + `maybe_update_derivation_path` on init
* keyset rotation
* fix error
* make format
* format
* test keyset rotation + fix bug
* format
* fix for multiple specified derivation paths
* specify return value
* #616: Removed blocking call from ledger startup. Instead added it to a background task that repeats every hour.
* make task interval configurable, remember task and cancel it on shutdown
* comments
* add sleep to tests because the background task is async
---------
Co-authored-by: Caleb Beery <cjbeery@gmail.com>
* mint migrations: fill in missing keyset ids in proofs and promises
* do not throw exception
* add error where proofs are missing an id but no keyset was found
* fix balance view initialization
* add amount, unit, request to melt and mint responses
* make new fields optional to not break compat with old mints
* make new flags optional for backwards compat
- Update `mint` method to use allowed amounts from the mint
- Add `get_allowed_amounts` method to fetch supported denominations
- Modify `test_mint_amounts_wrong_order` to expect new error message
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>