Releases: cashubtc/cdk
v0.5.0
What's Changed
This release included support with NUT-17 websockets for the mint as well as many bug fixes and improvements.
Changed
- cdk: Bump
bitcoin
to0.32.2
(prusnak). - cdk: Bump
lightning-invoice
to0.32.2
(prusnak). - cdk: Bump
lightning
to0.0.124
(prusnak). - cdk:
PaymentMethod
as anon_exhaustive
enum (thesimplekid). - cdk:
CurrencyUnit
as anon_exhaustive
enum (thesimplekid). - cdk: Enforce token is single mint (thesimplekid).
- cdk: Mint will return change for over paid melt even over fee reserve (davidcaseria).
- cdk: Refactor ln_backeds to be on the
cdk::Mint
and not with axum (thesimplekid). - cdk: Change is returned in the check quote response (thesimplekid).
- cdk: Move unit conversion util fn to amount module (davidcaseria).
- cdk: Remove spent proofs from db when check state is called (mubarak23).
- cdk: Use
MintUrl
directly in wallet client (ok300). - cdk-cli: Change cdk-cli pay command to melt (mubarak23).
- cdk: Rename
Wallet::get_proofs
toWallet::get_unspent_proofs
(ok300). - cdk:
Id
tou32
changed fromTryFrom
toFrom
([vnrpc]).
Added
- cdk: Added description to
MintQuoteBolt11Request
(lollerfirst). - cdk(wallet): Added description to
mint_quote
(lollerfirst). - cdk: Add
amount
andfee_paid
toMelted
(davidcaseria). - cdk: Add
from_proofs
onMelted
(davidcaseria). - cdk: Add unit on
PaymentResponse
(thesimplekid). - cdk: Add description for mint quote (lollerfirst).
- cdk-axum: Add cache to some endpoints (lollerfirst).
- cdk: Add Proofs trait (ok300).
- cdk: Wallet verifies keyset id when first fetching keys (thesimplekid).
- cdk-mind: Add swagger docs (ok300).
- cdk: NUT18 payment request support (thesimplekid).
- cdk: Add
Wallet::get_proofs_with
(ok300). - cdk: Mint NUT-17 Websocket support (crodas).
Removed
- cdk: Remove
MintMeltSettings
since it is no longer used (lollerfirst). - cdk:
PaymentMethod::Custom
(thesimplekid). - cdk: Remove deprecated
MeltBolt11Response
(thesimplekid).
Fixed
- cdk: Check of inputs to include fee (thesimplekid).
- cdk: Make unit mandatory in tokenv4 (ok300).
New Contributors
- @lollerfirst made their first contribution in #337
- @mubarak23 made their first contribution in #393
- @ubbabeck made their first contribution in #397
- @omahs made their first contribution in #411
- @delcin-raj made their first contribution in #440
- @crodas made their first contribution in #394
- @Jeezman made their first contribution in #454
Full Changelog: v0.4.0...v0.5.0
v0.4.0
#[0.4.0]
Summary
Changed
- cdk: Reduce MSRV to 1.63.0 (thesimplekid).
- cdk-axum: Reduce MSRV to 1.63.0 (thesimplekid).
- cdk-strike: Reduce MSRV to 1.63.0 (thesimplekid).
- cdk-lnbits: Reduce MSRV to 1.63.0 (thesimplekid).
- cdk-phoenixd: Reduce MSRV to 1.63.0 (thesimplekid).
- cdk-fake-wallet: Reduce MSRV to 1.63.0 (thesimplekid).
- cdk-cln: Reduce MSRV to 1.63.0 (thesimplekid).
- cdk-sqlite: Reduce MSRV to 1.66.0 (thesimplekid).
- cdk-redb: Reduce MSRV to 1.66.0 (thesimplekid).
- cdk: Format url base lowercase (callebtc).
- cdk: Use CDK error type instead of mint and wallet specific (thesimplekid).
- cdk-cli: Tokenv4 error print diagnostic notation (ok300).
- cdk-redb: Remove use of mutex (thesimplekid).
Added
- cdk: Multiple error types (thesimplekid).
Fixed
- cdk(mint): use checked addition on amount to ensure there is no overflow (thesimplekid).
Removed
- cdk(wallet): Removed CDK wallet error (thesimplekid).
- cdk(mint): Removed CDK mint error (thesimplekid).
New Contributors
- @callebtc made their first contribution in #311
- @findingsov made their first contribution in #323
- @ok300 made their first contribution in #334
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Summary
In this release LNbits, Strike API, and LND were added as supported lightning backends for the mint. The strike api supports both bitcoin denomination as well as fiat currency.
Changed
- cdk(wallet):
fn send
returnsToken
so the user can use the struct of convert it to a v3 or v4 string (thesimplekid). - cdk(wallet): Publicly export
MultiMintWallet
(thesimplekid). - cdk(cdk-database/mint): Get
pending
andspent
proofs
byys
orsecrets
instead of a single proofs (thesimplekid). - cdk(cdk-database/mint): Change
add_blind_signature
toadd_blind_signatures
(thesimplekid). - cdk(cdk-database/mint): Rename
add_active_keyset
toset_active_keyset
(thesimplekid). - cdk(cdk-database/wallet): Change
get_proofs
to returnVec<ProofInfo>
instead ofOption<Vec<ProofInfo>>
(thesimplekid). - cdk-cli: Receive will add wallet when receiving if mint is unknown (thesimplekid).
- cdk(cdk-database/mint): Rename
get_blinded_signatures
toget_blind_signatures
(thesimplekid). - cdk(cdk-database/mint): Rename
get_blinded_signatures_for_keyset
toget_blind_signatures_for_keyset
(thesimplekid). - cdk(mint): typo rename
total_redeame
tototal_redeemed
(vnprc) - cdk(mint): Refactored
MintKeySet::generate_from_xpriv
andMintKeySet::generate_from_seed
methods to accept max_order, currency_unit, and derivation_path parameters directly (vnprc). - cdk(wallet): Return WalletKey for UnknownWallet error (davidcaseria).
- cdk(cdk-lightning):
CreateInvoiceResponse
added expiry time to better support backends where it cannot be set (thesimplekid). - cdk(cdk-lightning): Use
Amount
type instead ofu64
(thesimplekid). - cdk(cdk-lightning):
CreateInvoice
requires unit argument (thesimplekid). - cdk(cdk/multi_mint_wallet):
get_balances
returns aBTreeMap
instead ofHashMap
(thesimplekid).
Added
- cdk(NUT-11): Add
Copy
onSigFlag
(thesimplekid). - cdk(wallet): Add
fn send_proofs
that marks proofs asreserved
and creates token (thesimplekid). - cdk(wallet): Add
fn melt_proofs
that uses specific proofs formelt
instead of selecting (thesimplekid). - cdk-cli(receive): Add support for signing keys to be nostr nsec encoded (thesimplekid).
- cdk-fake-wallet: Add Fake wallet for testing (thesimplekid).
- cdk(cdk-database/mint): Add
add_proofs
,get_proofs_by_ys
,get_proofs_states
, andupdate_proofs_states
(thesimplekid). - cdk(cdk-database/mint): Add
get_blinded_signatures_for_keyset
to get all blind signatures for akeyset_id
(thesimplekid). - cdk(mint): Add
total_issued
andtotal_redeamed
(thesimplekid). - cdk(cdk-database/mint) Add
get_proofs_by_keyset_id
(thesimplekid). - cdk(wallet/mint): Add
mint_icon_url
(cjbeery24). - cdk: Add
MintUrl
that sanatizes mint url by removing trailing/
(cjbeery24). - cdk(cdk-database/mint): Add
update_proofs
that both adds newProofInfo
s to the db and deletes (davidcaseria). - cdk(cdk-database/mint): Add
set_pending_proofs
,reserve_proofs
, andset_unspent_proofs
(davidcaseria).
Fixed
- cdk(mint):
SIG_ALL
is not allowed inmelt
(thesimplekid). - cdk(mint): On
swap
verify correct number of sigs on outputs whenSigAll
(thesimplekid). - cdk(mint): Use amount in payment_quote response from ln backend (thesimplekid).
- cdk(mint): Create new keysets for added supported units (thesimplekid).
- cdk(mint): If there is an error in swap proofs should be reset to unspent (thesimplekid).
Removed
- cdk(wallet): Remove unused argument
SplitTarget
onmelt
(thesimplekid). - cdk(cdk-database/mint): Remove
get_spent_proofs
,get_spent_proofs_by_ys
,get_pending_proofs
,get_pending_proofs_by_ys
, andremove_pending_proofs
(thesimplekid). - cdk: Remove
UncheckedUrl
in favor ofMintUrl
(cjbeery24). - cdk(cdk-database/mint): Remove
set_proof_state
,remove_proofs
andadd_proofs
(davidcaseria).
New Contributors
- @vnprc made their first contribution in #268
- @AbdelStark made their first contribution in #281
- @cjbeery24 made their first contribution in #282
- @prusnak made their first contribution in #294
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Summary
This release introduces TokenV4, which uses CBOR encoding as the default token format. It also includes fee support for both wallet and mint operations.
When sending, the sender can choose to include the necessary fee to ensure that the receiver can redeem the full sent amount. If this is not done, the receiver will be responsible for the fee.
Additionally, this release introduces a Mint binary cdk-mintd that uses the cdk-axum crate as a web server to create a full Cashu mint. When paired with a Lightning backend, currently implemented as Core Lightning, it is included in this release as cdk-cln.
Changed
- cdk(wallet):
wallet:receive
will not claimproofs
from a mint other then the wallet's mint ([thesimplekid]). - cdk(NUT00):
Token
is changed from astruct
toenum
of eitherTokenV4
orTokenv3
([thesimplekid]). - cdk(NUT00): Rename
MintProofs
toTokenV3Token
([thesimplekid]). - cdk(wallet): Additional arguments in
send
send_kind
andinclude_fees
for control of how to handle fees in a send ([thesimplekid]). - cdk(wallet): Additional arguments in
create_swap
include_fees
for control of if fees to redeam the send proofs are included in send amount ([thesimplekid]).
Added
- cdk: TokenV4 CBOR ([davidcaseria]/[thesimplekid]).
- cdk(wallet):
wallet::receive_proof
functions to claim specific proofs instead of encoded token ([thesimplekid]). - cdk-cli: Flag on
send
to print v3 token, default is v4 ([thesimplekid]). - cdk:
MintLightning
trait ([thesimplekid]). - cdk-mintd: Mint binary ([thesimplekid]).
- cdk-cln: cln backend for mint ([thesimplekid]).
- cdk-axum: Mint axum server ([thesimplekid]).
- cdk: NUT06
MintInfo
andNUTs
builder ([thesimplekid]). - cdk: NUT00
PreMintSecret
added Keyset id ([thesimplekid]). - cdk: NUT02 Support fees ([thesimplekid]).
Fixed
- cdk: NUT06 deseralize
MintInfo
([thesimplekid]).
Full Changelog: v0.1.1...v0.2.0