diff --git a/README.md b/README.md index 174184b22..a91dd796d 100644 --- a/README.md +++ b/README.md @@ -1,63 +1,60 @@ > **Warning** > This project is in early development, it does however work with real sats! Always use amounts you don't mind losing. - # Cashu Development Kit CDK is a collection of rust crates for [Cashu](https://github.com/cashubtc) wallets and mints written in Rust. **ALPHA** This library is in early development, the api will change and should be used with caution. - ## Project structure The project is split up into several crates in the `crates/` directory: -* Libraries: - * [**cdk**](./crates/cdk/): Rust implementation of Cashu protocol. - * [**cdk-sqlite**](./crates/cdk-sqlite/): SQLite Storage backend. - * [**cdk-redb**](./crates/cdk-redb/): Redb Storage backend. - * [**cdk-rexie**](./crates/cdk-rexie/): Rexie Storage backend for browsers. - * [**cdk-axum**](./crates/cdk-axum/): Axum webserver for mint. - * [**cdk-cln**](./crates/cdk-cln/): CLN Lightning backend for mint. - * [**cdk-lnd**](./crates/cdk-lnd/): Lnd Lightning backend for mint. - * [**cdk-strike**](./crates/cdk-strike/): Strike Lightning backend for mint. - * [**cdk-lnbits**](./crates/cdk-lnbits/): [LNbits](https://lnbits.com/) Lightning backend for mint. - * [**cdk-fake-wallet**](./crates/cdk-fake-wallet/): Fake Lightning backend for mint. To be used only for testing, quotes are automatically filled. -* Binaries: - * [**cdk-cli**](./crates/cdk-cli/): Cashu wallet CLI. - * [**cdk-mintd**](./crates/cdk-mintd/): Cashu Mint Binary. - +- Libraries: + - [**cdk**](./crates/cdk/): Rust implementation of Cashu protocol. + - [**cdk-sqlite**](./crates/cdk-sqlite/): SQLite Storage backend. + - [**cdk-redb**](./crates/cdk-redb/): Redb Storage backend. + - [**cdk-rexie**](./crates/cdk-rexie/): Rexie Storage backend for browsers. + - [**cdk-axum**](./crates/cdk-axum/): Axum webserver for mint. + - [**cdk-cln**](./crates/cdk-cln/): CLN Lightning backend for mint. + - [**cdk-lnd**](./crates/cdk-lnd/): Lnd Lightning backend for mint. + - [**cdk-strike**](./crates/cdk-strike/): Strike Lightning backend for mint. + - [**cdk-lnbits**](./crates/cdk-lnbits/): [LNbits](https://lnbits.com/) Lightning backend for mint. + - [**cdk-fake-wallet**](./crates/cdk-fake-wallet/): Fake Lightning backend for mint. To be used only for testing, quotes are automatically filled. +- Binaries: + - [**cdk-cli**](./crates/cdk-cli/): Cashu wallet CLI. + - [**cdk-mintd**](./crates/cdk-mintd/): Cashu Mint Binary. ## Implemented [NUTs](https://github.com/cashubtc/nuts/): ### Mandatory -| NUT # | Description | -|----------|-----------------------------------| -| [00][00] | Cryptography and Models | -| [01][01] | Mint public keys | -| [02][02] | Keysets and fees | -| [03][03] | Swapping tokens | -| [04][04] | Minting tokens | -| [05][05] | Melting tokens | -| [06][06] | Mint info | +| NUT # | Description | +| -------- | ----------------------- | +| [00][00] | Cryptography and Models | +| [01][01] | Mint public keys | +| [02][02] | Keysets and fees | +| [03][03] | Swapping tokens | +| [04][04] | Minting tokens | +| [05][05] | Melting tokens | +| [06][06] | Mint info | ### Optional -| # | Description | Status -| --- | --- | --- | -| [07][07] | Token state check | :heavy_check_mark: | -| [08][08] | Overpaid Lightning fees | :heavy_check_mark: | -| [09][09] | Signature restore | :heavy_check_mark: | -| [10][10] | Spending conditions | :heavy_check_mark: | -| [11][11] | Pay-To-Pubkey (P2PK) | :heavy_check_mark: | -| [12][12] | DLEQ proofs | :heavy_check_mark: | -| [13][13] | Deterministic secrets | :heavy_check_mark: | +| # | Description | Status | +| -------- | --------------------------------- | ------------------ | +| [07][07] | Token state check | :heavy_check_mark: | +| [08][08] | Overpaid Lightning fees | :heavy_check_mark: | +| [09][09] | Signature restore | :heavy_check_mark: | +| [10][10] | Spending conditions | :heavy_check_mark: | +| [11][11] | Pay-To-Pubkey (P2PK) | :heavy_check_mark: | +| [12][12] | DLEQ proofs | :heavy_check_mark: | +| [13][13] | Deterministic secrets | :heavy_check_mark: | | [14][14] | Hashed Timelock Contracts (HTLCs) | :heavy_check_mark: | | [15][15] | Partial multi-path payments (MPP) | :heavy_check_mark: | -| [16][16] | Animated QR codes | :x: | -| [17][17] | WebSocket subscriptions | :construction: | +| [16][16] | Animated QR codes | :x: | +| [17][17] | WebSocket subscriptions | :construction: | MSRV @@ -65,6 +62,30 @@ MSRV Experimental bindings can be found in the [bindings](./bindings/) folder. +## Building from source + +```sh + nix develop +``` + +#### Build + +```sh + just build +``` + +### Run Test + +```sh + just test +``` + +### Setup Dev + +``` + https://github.com/cashubtc/cdk/tree/main/crates/cdk-mintd#readme +``` + ## License Code is under the [MIT License](LICENSE)