* feat(cdk): add WebSocket authentication support with comprehensive configuration
- Add WebSocket auth token injection for client connections
- Implement server-side WebSocket authentication verification
- Add configuration options for per-endpoint WebSocket auth types
- Include comprehensive documentation and example configuration
- Support clear, blind, and no-auth modes for WebSocket endpoin
* Include supported amounts instead of assuming the power of 2
The mint's signatory defines the amounts and the wallet, and the mint, when
paying, should use them instead of assuming the supported amounts are
2^(0..32), which is not part of the spec.
* Introduce FeeAndAmount struct
* feat(docker): add LDK Node mint service with dedicated Docker setup
- Add Dockerfile.ldk-node and Dockerfile.ldk-node.arm for LDK Node builds
- Add GitHub Actions workflows for publishing LDK Node Docker images
- Add docker-compose.ldk-node.yaml for standalone LDK Node deployment
- Integrate LDK Node service into main docker-compose.yaml with profile
- Update cdk-mintd README with LDK Node Docker configuration
* feat: use docker tags
* feat: add FFI types and conversion logic for NUT-04 and NUT-05 settings in `cdk-ffi`
* feat: remove auth feature and deafult to having auth
---------
Co-authored-by: thesimplekid <tsk@thesimplekid.com>
Add proper error handling and logging for add_mint operation instead of
propagating errors, preventing wallet operations from failing completely
when a mint cannot be added.
- write generated migration files to OUT_DIR instead of source directory
- copy migration SQL files to OUT_DIR for inclusion in build artifacts
- use absolute paths from OUT_DIR in include_str! macros
- update consumer modules to include from OUT_DIR using concat! macro
these changes enable cdk to support nix sandbox builds
* feat(cdk): add amount_mintable method and improve mint quote validation
- Add MintQuote::amount_mintable() method to calculate available mint amount
- Update mint issue logic to use centralized amount calculation
- Add validation for Bolt11 payment amounts matching quote amounts
- Improve error handling and logging for quote amount mismatches
* Add `resolve_dns_txt` to HttpTransport and MintConnector
Fixes#1036
* Use `hickory_resolver` to resolve DNS entries
* Remote default implementation of methods
* Fix build for wasm
* Add consistent ordering of sql migrations
Also sort the prefix and not only the filenames
* Reorganize tests, add mint quote/payment coverage, and prevent over-issuing
Reorganizes the mint test suite into clear modules, adds comprehensive mint
quote & payment scenarios, enhances the shared test macro, and hardens SQL
logic to forbid issuing more than what’s been paid.
These tests were added:
* Add quote once; reject duplicates.
* Register multiple payments and verify aggregated amount_paid.
* Read parity between DB and in-TX views.
* Reject duplicate payment_id in same and different transactions.
* Reject over-issuing (same TX, different TX, with/without prior payments).
---------
Co-authored-by: thesimplekid <tsk@thesimplekid.com>
There was a race conditions between the database storing the mint quote and the
fake wallet paying the invoice of a yet not existing mint quote
Add a delay of seconds before paying all invoices
To recreate the slow conditions that would make our database slower than the
external Fakewallet in Linux
```
sudo tc qdisc add dev lo root netem delay 200ms 50ms
ionice -c3 nix develop -i -L .#stable --command just itest-payment-processor FAKEWALLET
```
To reset
```
sudo tc qdisc del dev lo root
```
- Add quote_id field to Transaction struct in cdk-common
- Add database migrations for quote_id column in SQLite and PostgreSQL
- Update wallet operations to populate quote_id for mint/melt transactions
- Set quote_id to None for send/receive operations without associated quotes