Commit Graph

1185 Commits

Author SHA1 Message Date
lollerfirst
dafdf757af CORS Headers in Responses (#719)
* access control headers for CORS request from in-browser wallets

* cargo fmt

* handle preflight requests
2025-04-10 13:47:35 +01:00
timesince
5df983c388 chore: fix typo in DEVELOPMENT.md (#720)
Signed-off-by: timesince <seekseat@icloud.com>
2025-04-10 08:39:39 +01:00
thesimplekid
96179b7d14 chore: Bump CDK crates version from 0.8.1 to 0.9.0 2025-04-09 15:33:01 +01:00
thesimplekid
db067a145d docs: Add README.md for cdk-mint-rpc crate (#717)
* docs: Add README.md for cdk-mint-rpc crate

* docs: auth readme
2025-04-09 15:29:03 +01:00
thesimplekid
f44f79d3e0 fix: grpc set mint urls, updating description and add get quote ttl (#716)
* fix: grpc set mint urls

* refactor: Extract payment processor retrieval into helper method

* fix: only allow updates to nut04/05 where there is a backend

* feat: Add GetQuoteTtl RPC method to retrieve quote TTL settings

* fix: update long desctiption
2025-04-09 15:28:25 +01:00
thesimplekid
fb613b2e21 Merge pull request #713 from thesimplekid/fix_amountless_enabled_check
fix: amountless setting
2025-04-08 11:16:32 +01:00
thesimplekid
92500c27fe Merge pull request #712 from gandlafbtc/patch-2
fix typo in README.md
2025-04-08 10:25:04 +01:00
thesimplekid
e883d2d684 fix: amountless setting 2025-04-08 10:23:42 +01:00
gandlafbtc
017ce71bff fix typo in README.md 2025-04-08 18:20:32 +09:00
thesimplekid
b1c7aed8e4 Merge pull request #711 from thesimplekid/changel
docs: update change log
2025-04-08 09:29:52 +01:00
thesimplekid
cce8dbfe7e docs: update change log 2025-04-08 08:23:52 +01:00
thesimplekid
759201bc7c Export MintDatabase traits in the cdk crate (#710) 2025-04-07 22:45:15 +01:00
David Caseria
3514f362eb Export MintDatabase traits in the cdk crate 2025-04-07 12:45:02 -04:00
thesimplekid
0b9ca1a474 Time time series (#708)
* feat: Add created_time and paid_time fields to MintQuote struct

* feat: Add serde default of 0 for created_time in MintQuote

* feat: Add created_time and paid_time to MintQuote and MeltQuote structs

* feat: Add paid_time update when setting melt quote state to Paid

* fix: Update melt quote state with current Unix timestamp

* feat: Add paid_time update for mint quote when state is set to Paid

* feat: Add issued_time field to MintQuote conversion from SQLite row

* feat: Add issued_time tracking for MintQuoteState::Issued state

* feat: Add migration script for mint time of quotes

* feat: Add timestamp columns to mint_quote and melt_quote tables

* feat: Add timestamp columns to `add_mint_quote` method

* refactor: Improve code formatting and readability in mint quote state update logic

* feat: Add created_time and paid_time columns to melt_quote query

* feat: time on mint and melt quotes

* feat: Add migration script for mint created time signature

feat: Add created_time column to blind_signature table

feat: Add created_time to blind_signature insertion

feat: Add created_time column to proof table and update insert query

feat: time on mint and melt quotes

* feat: Add new table to track blind signature creation time

* feat: Add timestamp tracking for proofs in ReDB database

* feat: redb proof time

* chore: fmt
2025-04-07 12:51:14 +01:00
C
43ab1fdde1 Do not create the wallet struct directly; instead, call new. (#707)
The bug comes with the SQLx-sqlite pool bug, where several connections are
created by default, but the `new` function takes care of that, fixing that bug
by making a single instance of the database.

If constructed directly, the pool would create several connections to the
database, which in most instances is fine, but with SQLite :memory: each
connection is entirely independent.

Also follow documentation to make sure that failed `acquire` will not end up
dropping connections by setting  test_before_acquire to false

     However, if your workload is sensitive to dropped connections such as using an in-memory
     SQLite database with a pool size of 1, you can pretty easily ensure that a cancelled
     `acquire()` call will never drop connections by tweaking your [`PoolOptions`]:

     * Set [`test_before_acquire(false)`][PoolOptions::test_before_acquire]
     * Never set [`before_acquire`][PoolOptions::before_acquire] or
       [`after_connect`][PoolOptions::after_connect].
2025-04-06 07:13:14 +01:00
thesimplekid
d224cc57b5 Melt to amountless invoice (#497)
* feat: melt token with amountless

* fix: docs

* fix: extra migration
2025-04-04 13:16:27 +01:00
thesimplekid
09f339e6c6 Merge pull request #704 from thesimplekid/fix_mint_pending
fix: mint pending get mint info to create auth wallet
2025-04-03 15:44:56 +01:00
thesimplekid
71bfe1ff9c fix: mint pending get mint info to create auth wallet 2025-04-03 13:19:39 +01:00
thesimplekid
d68fdd1a0c Merge pull request #703 from thesimplekid/fix_nutshell_tests
fix: nutshell tests
2025-04-03 13:14:27 +01:00
thesimplekid
d6d3955d50 fix: nutshell tests 2025-04-03 12:20:41 +01:00
thesimplekid
4a113ff947 Merge pull request #700 from thesimplekid/update_flake_2
chore: update flake
2025-04-03 11:42:49 +01:00
David Caseria
b1dd321f0a Add transactions to database (#686) 2025-04-03 11:37:43 +01:00
thesimplekid
7fbe55ea02 Test fees (#698)
* feat: Add Docker container setup for Nutshell mint in test-nutshell recipe

* test: Add wait mechanism for Nutshell docker container startup

* test: Modify Nutshell wallet tests to run sequentially

* fix: mintd set input fee pkk

* feat: fee tests

* fix: melt returning fee in change

* fix: fee tests

* fix: fee tests
2025-04-03 00:30:50 +01:00
thesimplekid
f0766d0ae4 Merge pull request #701 from luozexuan/main
chore: fix some typos in comment
2025-04-02 11:41:39 +01:00
luozexuan
02fd849870 chore: fix some typos in comment
Signed-off-by: luozexuan <fetchcode@139.com>
2025-04-02 18:29:18 +08:00
thesimplekid
afbf844dbe chore: update flake 2025-04-02 11:13:09 +01:00
thesimplekid
f4c857c3e7 Nutshell wallet (#695)
* chore: Add nutshell wallet integration test script

feat: Add MINT_URL configuration for docker container in nutshell wallet integration test script

chore: Make nutshell_wallet_itest.sh executable

fix: Update MINT_URL to use host.docker.internal for Docker container access

feat: Add Docker container startup for Cashu daemon in wallet integration test script

chore: Update Docker image to use Docker Hub repository

feat: Add cleanup trap to stop Docker container and unset variables

feat: Add initial test stub for nutshell wallet mint functionality

test: Add Cashu wallet mint integration test

feat: Add just command for nutshell wallet integration test

refactor: Organize imports and improve code formatting in nutshell wallet test

fix: Update Cashu Docker image and test URL for correct container access

fix: Update Docker container name and image for Cashu wallet test script

fix: Handle Docker container name conflict in nutshell wallet integration test

fix: Update Docker image to cashubtc/nutshell:latest in wallet integration test script

feat: Add support for running separate Nutshell mint and wallet containers

feat: Update Nutshell mint and wallet container configurations for integration testing

fix: Update wallet port and container configuration in integration test script

chore: Export MINT_URL and WALLET_URL as environment variables

fix: Update invoice creation and state checking in nutshell wallet test

fix: Update MINT_URL to use host.docker.internal for container access

fix: Update nutshell wallet mint test to handle invoice payment state

refactor: Improve Nutshell wallet test with better error handling and robustness

refactor: Improve code formatting and logging in nutshell wallet test

refactor: Replace anyhow with expect for error handling in Nutshell wallet test

refactor: Simplify error handling in Nutshell wallet mint test

refactor: Replace `?` with `expect()` in Nutshell wallet test

refactor: Simplify nutshell wallet test by removing unused code and improving error handling

refactor: Extract minting and balance helper functions in nutshell wallet test

feat: Add test for Nutshell wallet token swap functionality

fix: Trim quotes from token in nutshell wallet swap test

refactor: Remove debug print statements and improve code readability

refactor: Improve test_nutshell_wallet_melt with payment state checking and balance verification

refactor: Update Nutshell wallet integration test script configuration

feat: Extract common mint startup function into shared script

refactor: Simplify nutshell wallet integration test script and improve startup process

feat: Add mintd process termination and test status capture in integration test script

refactor: Capitalize env vars and ensure comprehensive cleanup in trap

feat: nutshell wallet test

* ci: Add test step for Nutshell wallet integration tests

* ci: Split Nutshell integration tests into separate jobs

* feat: nutshell wallet test

* ci: Add Docker setup and increase timeout for Nutshell wallet integration tests

* chore: Improve Nutshell wallet integration test script robustness

* fix: Remove -i flag from Nix develop and improve Docker accessibility check

* fix: payment processor

* fix: wallet tests

* feat: Add integration shell with Docker and Rust stable for testing

* ci: Simplify Nutshell wallet integration test workflow and script

* fix: Improve mintd endpoint detection and error handling in integration test script

* fix: wallet tests
2025-03-30 13:08:00 +01:00
ok300
0eb5805f6f Mint example config: remove stale cln_path reference (#694) 2025-03-30 10:30:58 +01:00
thesimplekid
52bfc8c9ce feat: nutshell itests (#691) 2025-03-29 22:04:43 +00:00
ok300
240e22c96a Remove stale crate references (#692) 2025-03-28 14:49:07 +00:00
thesimplekid
fa67271cca Int tests (#685)
* Here's a commit message for this change:

refactor: Move mint tests to fake_wallet.rs and add descriptive comments

refactor: pure wallet/mint does not need arc

refactor: Consolidate NUT-06 test into single function and remove redundant module

docs: Add comments explaining test purposes in integration tests file

refactor: Remove anyhow and replace with expect for error handling

refactor: use expect in pure tests

feat: Add configurable database type via environment variable for test mint and wallet

refactor: Update database initialization in test mint and wallet creation

feat: Add temporary directory support for redb and sqlite databases in tests

feat: Add database type argument to test commands in justfile

ci: Add build matrix for pure-itest with memory, sqlite, and redb databases

refactor: use expect in pure tests

refactor: Move and refactor `test_swap_unbalanced` from mint to integration tests pure

refactor: move mint tests to pure tests

docs: Add detailed comments explaining test file purposes for mint and integration tests

refactor: Extract keyset ID retrieval into a reusable function

test: Add concurrent double-spend test with 3 swap transactions

refactor: Simplify concurrent swap request processing and error handling

test: Add check to verify all proofs are marked as spent in concurrent double-spend test

refactor: Optimize proof state retrieval in concurrent double-spend test

feat: Add test for concurrent melt race condition with same proofs

fix: Update concurrent melt test to use melt quote and handle errors

refactor: melt concurrrent

refactor: Rename test function for clarity in concurrent double-spend scenario

refactor: Modify test_concurrent_double_spend_melt to manually create melt requests in mint tasks

feat: con melt test

refactor: Optimize proof state handling and error recovery in check_spendable

refactor: Extract helper method to reset proofs to original state

fix: reset y states

fix: reset y states

* fix: acces of priv feilds

* fix: add extra migrate
2025-03-27 12:48:36 +00:00
thesimplekid
5484e7c33a Merge pull request #690 from thesimplekid/request_without_dleq
Request without dleq
2025-03-27 08:45:02 +00:00
thesimplekid
4ba0b6c6ef Merge pull request #593 from BitcreditProtocol/peanut/mintdatabase_split
split MintDatabase into separate narrower scoped traits
2025-03-26 23:31:58 +00:00
ok300
de4285bd9c Simplify MultiMintWallet interface (#664) 2025-03-26 15:55:57 +00:00
codingpeanut157
47903c3bfd split MintDatabase into separate narrower scoped traits
- MintKeysDatabase
- MintQuotesDatabase
- MintProofsDatabase
- MintSignaturesDatabase

This commit splits the MintDatabase trait with 30+ methods into a series
of smaller traits, each dedicate to a specific subsystem of the mint
service.
2025-03-26 16:53:07 +01:00
thesimplekid
7b4951041e Rust docs (#681) 2025-03-25 23:27:38 +00:00
thesimplekid
1e20e8fc2b Merge pull request #682 from thesimplekid/cdk_common_wallet
refactor: cashu wallet moved to cdk-common
2025-03-25 13:39:30 +00:00
thesimplekid
d1c9dbae28 refactor: cashu wallet moved to cdk-common 2025-03-25 12:55:05 +00:00
thesimplekid
e86531957f Merge pull request #680 from thesimplekid/prepare_v0.8.1
chore: prepare v0.8.1
2025-03-25 10:15:28 +00:00
thesimplekid
f6c11173f9 chore: prepare v0.8.1 2025-03-25 09:28:57 +00:00
thesimplekid
ef2b07d1e2 Merge pull request #677 from thesimplekid/cdk-redb-cli
feat: Add optional redb feature flag for database support
2025-03-25 09:21:23 +00:00
thesimplekid
29452debe4 Merge pull request #679 from thesimplekid/docker_publish_ci
fix: remove arm for docker ci
2025-03-25 09:19:57 +00:00
thesimplekid
1634dd6552 fix: remove arm for docker ci 2025-03-25 09:19:30 +00:00
thesimplekid
0454f6299e Merge pull request #678 from benthecarman/fix-paths
fix: Fix MintUrls with a path
2025-03-25 09:08:47 +00:00
benthecarman
b8fbd83772 fix: Fix MintUrls with a path 2025-03-25 00:49:52 -05:00
thesimplekid
4224ebdf19 Merge pull request #676 from thesimplekid/proto_exp
Proto exp
2025-03-24 23:22:43 +00:00
thesimplekid (aider)
7a9faec984 feat: Add optional redb feature flag for database support 2025-03-24 22:31:14 +00:00
thesimplekid
9b87a65940 docs: changelog 2025-03-24 22:21:42 +00:00
thesimplekid
e260a12e4c fix: exp for mint-rpc 2025-03-24 22:19:45 +00:00
thesimplekid
ad14f64f36 Merge pull request #671 from optout21/melt-example
Add example program for melt operation
2025-03-24 21:00:38 +00:00