Quellcode durchsuchen

chore: bump 0.12 (#997)

thesimplekid vor 2 Monaten
Ursprung
Commit
44cef59fe5
2 geänderte Dateien mit 46 neuen und 19 gelöschten Zeilen
  1. 28 1
      CHANGELOG.md
  2. 18 18
      Cargo.toml

+ 28 - 1
CHANGELOG.md

@@ -6,6 +6,12 @@
 
 ## [Unreleased]
 
+## [0.12.0](https://github.com/cashubtc/cdk/releases/tag/v0.12.0)
+
+### Summary
+
+Version 0.12.0 delivers end-to-end BOLT12 offers and payments, adds BIP‑353 address resolution for BOLT12 payments, and introduces cdk-ldk-node, an integrated Lightning backend that lets a single binary run both a Cashu mint and a Lightning node with full BOLT11 and BOLT12 support. It also adds a local, admin-focused web UI for cdk-ldk-node with dashboards for channels, invoices and offers, payments, and on-chain activity. On the data layer, the release expands storage with PostgreSQL via the new cdk-postgres crate and accelerates the shared SQL stack (cdk-sql-common) with statement caching and structured, namespaced/global migrations. Operationally, the mint now exposes explicit start and stop lifecycle methods, enabling graceful startup and shutdown of background services. Wallet keyset management has been clarified with renamed APIs that separate local storage from network fetches—making load_mint_keysets the primary entry point for token operations—and the MSRV is updated to 1.85.0.
+
 ### Added
 - dev: Goose recipes for changelog and commit message generation with Just commands ([thesimplekid]).
 - cashu: `KeySetInfos` type alias and `KeySetInfosMethods` trait for filtering keysets ([thesimplekid]).
@@ -21,8 +27,15 @@
 - cdk-redb: Database migration to increment keyset counters by 1 for existing keysets with counter > 0 ([thesimplekid]).
 - cdk-sql-common: Database migration to increment keyset counters by 1 for existing keysets with counter > 0 ([thesimplekid]).
 - cdk-ldk-node: New Lightning backend implementation using LDK Node for improved Lightning Network functionality ([thesimplekid]).
+- cdk-ldk-node: Local web management UI (dashboard, channels, invoices/offers, payments, on‑chain). Intended for localhost/admin use only; do not expose publicly ([thesimplekid]/[erik]).
 - cdk-common: Added `start()` and `stop()` methods to `MintPayment` trait for payment processor lifecycle management ([thesimplekid]).
 - cdk-mintd: Added LDK Node backend support with comprehensive configuration options ([thesimplekid]).
+- cdk-postgres: Postgres Database for mint and wallet ([crodas]).
+- cdk: BOLT12 mint quote WebSocket subscriptions (NUT-17) ([crodas]).
+- cdk: Future streams for payments and minting proofs ([crodas]).
+- cdk: Log-to-file support ([thesimplekid]).
+- cdk(wallet): BIP-353 support ([thesimplekid]).
+- security: Zeroize secrets on drop ([vnprc]).
 
 ### Changed
 - cdk-common: Modified `Database::get_keyset_counter` trait method to return `u32` instead of `Option<u32>` for simpler keyset counter handling ([thesimplekid]).
@@ -38,6 +51,11 @@
 - cdk: Improved mint shutdown to gracefully stop payment processors alongside background services ([thesimplekid]).
 - cdk-mintd: Updated to use new mint lifecycle methods for improved service management ([thesimplekid]).
 - cdk-integration-tests: Updated test utilities to use new mint lifecycle management ([thesimplekid]).
+- cdk: HTTP retry only on transport errors ([crodas]).
+- cdk-lnbits: Migrate to LNBits v1 websocket API and remove pre-v1 code paths ([thesimplekid]).
+- cdk-cln: Use millisatoshis (msats) for amounts ([thesimplekid]).
+- cdk: NUT-20 support toggle in mint builder configuration ([thesimplekid]).
+- cashu/cdk: New secret derivation per updated spec ([lollerfirst]).
 - cdk-sqlite: Introduce `cdk-sql-common` crate for shared SQL storage codebase ([crodas]).
 - cdk-sqlite: Rename `still_active` to `stale` for better clarity ([crodas]).
 - cdk-integration-tests: Refactored regtest setup to use Rust binaries instead of shell scripts ([thesimplekid]).
@@ -46,14 +64,22 @@
 - cdk-integration-tests: Updated integration tests to use proper temp directory management ([thesimplekid]).
 - cdk-integration-tests: Simplified regtest shell scripts to use new binaries ([thesimplekid]).
 - crates/cdk-mintd: Moved mintd library functions to separate module for better organization and testability ([thesimplekid]).
+- dev/docker: Switch base image to Debian Trixie ([thesimplekid]).
 - Updated MSRV to 1.85.0 ([thesimplekid]).
 - dev: Simplified Nix flake configuration by removing specific dependency version constraints from MSRV shell hook ([thesimplekid]).
 
 ### Fixed
 - cashu: Fixed CurrencyUnit custom units preserving original case instead of being converted to uppercase ([thesimplekid]).
+- cdk: Fix P2PK spending-condition validation and requirements ([thesimplekid]).
+- cdk: Fixed BOLT12 missing payments notifications ([crodas]).
+- cdk-axum/mint: Fix BOLT12 WebSocket behavior on mint ([thesimplekid]).
+- cdk-lnbits: Fix payment check and unit handling ([thesimplekid]).
 - cdk-sqlite: Fix `get_mint_quote_by_request_lookup_id` function synchronization ([crodas]).
-- cdk-common: Fix TransactionId::from_hex to check bytes length before copy to avoid panic ([codingpeanut157]).
+- cdk-sqlite: Reduce mmap_size to 5 MiB to avoid resource issues ([thesimplekid]).
+- cdk: Remove unwrap in startup checks ([thesimplekid]).
+- cdk: Allow paid and issued BOLT12 quotes to settle internally ([gudnuf]).
 - cdk: Include change in melt quote state updates ([thesimplekid]).
+- cdk-mintd/axum: Pass auth config from mintd through to axum correctly ([thesimplekid]).
 
 ### Migration
 - cdk-sql-common: Improve migrations with namespaced and global migrations support ([crodas]).
@@ -482,3 +508,4 @@ Additionally, this release introduces a Mint binary cdk-mintd that uses the cdk-
 [asmo]: https://github.com/asmogo
 [gudnuf]: https://github.com/gudnuf
 [codingpeanut157]: https://github.com/codingpeanut157
+[erik]: https://github.com/swedishfrenchpress

+ 18 - 18
Cargo.toml

@@ -33,7 +33,7 @@ rust-version = "1.85.0"
 license = "MIT"
 homepage = "https://github.com/cashubtc/cdk"
 repository = "https://github.com/cashubtc/cdk.git"
-version = "0.11.0"
+version = "0.12.0"
 readme = "README.md"
 
 [workspace.dependencies]
@@ -43,23 +43,23 @@ axum = { version = "0.8.1", features = ["ws"] }
 bitcoin = { version = "0.32.2", features = ["base64", "serde", "rand", "rand-std"] }
 bip39 = { version = "2.0", features = ["rand"] }
 jsonwebtoken = "9.2.0"
-cashu = { path = "./crates/cashu", version = "=0.11.0" }
-cdk = { path = "./crates/cdk", default-features = false, version = "=0.11.0" }
-cdk-common = { path = "./crates/cdk-common", default-features = false, version = "=0.11.0" }
-cdk-axum = { path = "./crates/cdk-axum", default-features = false, version = "=0.11.0" }
-cdk-cln = { path = "./crates/cdk-cln", version = "=0.11.0" }
-cdk-lnbits = { path = "./crates/cdk-lnbits", version = "=0.11.0" }
-cdk-lnd = { path = "./crates/cdk-lnd", version = "=0.11.0" }
-cdk-ldk-node = { path = "./crates/cdk-ldk-node", version = "=0.11.0" }
-cdk-fake-wallet = { path = "./crates/cdk-fake-wallet", version = "=0.11.0" }
-cdk-payment-processor = { path = "./crates/cdk-payment-processor", default-features = true, version = "=0.11.0" }
-cdk-mint-rpc = { path = "./crates/cdk-mint-rpc", version = "=0.11.0" }
-cdk-redb = { path = "./crates/cdk-redb", default-features = true, version = "=0.11.0" }
-cdk-sql-common = { path = "./crates/cdk-sql-common", default-features = true, version = "=0.11.0" }
-cdk-sqlite = { path = "./crates/cdk-sqlite", default-features = true, version = "=0.11.0" }
-cdk-postgres = { path = "./crates/cdk-postgres", default-features = true, version = "=0.11.0" }
-cdk-signatory = { path = "./crates/cdk-signatory", version = "=0.11.0", default-features = false }
-cdk-mintd = { path = "./crates/cdk-mintd", version = "=0.11.0", default-features = false }
+cashu = { path = "./crates/cashu", version = "=0.12.0" }
+cdk = { path = "./crates/cdk", default-features = false, version = "=0.12.0" }
+cdk-common = { path = "./crates/cdk-common", default-features = false, version = "=0.12.0" }
+cdk-axum = { path = "./crates/cdk-axum", default-features = false, version = "=0.12.0" }
+cdk-cln = { path = "./crates/cdk-cln", version = "=0.12.0" }
+cdk-lnbits = { path = "./crates/cdk-lnbits", version = "=0.12.0" }
+cdk-lnd = { path = "./crates/cdk-lnd", version = "=0.12.0" }
+cdk-ldk-node = { path = "./crates/cdk-ldk-node", version = "=0.12.0" }
+cdk-fake-wallet = { path = "./crates/cdk-fake-wallet", version = "=0.12.0" }
+cdk-payment-processor = { path = "./crates/cdk-payment-processor", default-features = true, version = "=0.12.0" }
+cdk-mint-rpc = { path = "./crates/cdk-mint-rpc", version = "=0.12.0" }
+cdk-redb = { path = "./crates/cdk-redb", default-features = true, version = "=0.12.0" }
+cdk-sql-common = { path = "./crates/cdk-sql-common", default-features = true, version = "=0.12.0" }
+cdk-sqlite = { path = "./crates/cdk-sqlite", default-features = true, version = "=0.12.0" }
+cdk-postgres = { path = "./crates/cdk-postgres", default-features = true, version = "=0.12.0" }
+cdk-signatory = { path = "./crates/cdk-signatory", version = "=0.12.0", default-features = false }
+cdk-mintd = { path = "./crates/cdk-mintd", version = "=0.12.0", default-features = false }
 clap = { version = "4.5.31", features = ["derive"] }
 ciborium = { version = "0.2.2", default-features = false, features = ["std"] }
 cbor-diag = "0.1.12"