Commit Graph

882 Commits

Author SHA1 Message Date
thesimplekid
8c361e7d7a Merge pull request #817 from thesimplekid/fix_cli_send
fix: sqlite get_mints function
2025-06-15 16:41:20 +01:00
thesimplekid
56b0d087db chore: cdk-cli version 2025-06-15 11:02:46 +01:00
thesimplekid
073ac30127 fix: get mints command cdk-sqlite 2025-06-15 10:42:46 +01:00
thesimplekid
00791a1125 fix: signatory is not required for wallet 2025-06-15 07:34:03 +01:00
C
5a6b28816a Migrate from sqlx to rusqlite (#783)
* Migrate from `sqlx` to rusqlite

1. Add rusqlite with rusqlite with a working thread
2. Add wallet without a thread (synchronous)
3. Add custom migration

Co-authored-by: thesimplekid <tsk@thesimplekid.com>
2025-06-14 12:49:50 +01:00
thesimplekid
a335b269b7 Update ln-bits to support v1 api (#802)
* feat: v1 websockets

* chore: update lnbits dep
2025-06-12 08:40:49 +01:00
Cesar Rodas
2e2ce0f621 Use RwLock instead of Mutex.
A mutex is too aggressive when the shared object can be accessed read-only most
of the time instead of requiring exclusive access.
2025-06-11 20:17:04 -03:00
coderwander
8f6210dba4 chore: add the missing right bracket
Signed-off-by: coderwander <770732124@qq.com>
2025-06-10 17:49:51 +08:00
thesimplekid
86b03dca6d fix: set mint version 2025-06-09 22:05:50 +01:00
thesimplekid
f7846f65c2 chore: cdk-signatory metadata 2025-06-07 20:16:33 +01:00
thesimplekid
9e8f5a1e7d chore: bump v0.10.0 2025-06-07 20:09:15 +01:00
thesimplekid
21a5ac9406 feat(cli): enhance check-pending to reclaim proofs (#795)
* feat(cli): enhance check-pending to reclaim proofs

The check-pending command now directly attempts to reclaim proofs that
are no longer pending, replacing the previous check-only behavior.

Changes:
- Replace check_all_pending_proofs with reclaim_unspent functionality
- Add more detailed feedback about pending proof status
- Update command description to reflect new reclaim behavior
- Improve error handling and status reporting

This change makes the command more useful by actively reclaiming
proofs rather than just checking their status.

* refactor: remove CheckSpendable command and check_spent module

The CheckSpendable command and its associated check_spent.rs module have been
removed as their functionality is redundant with the CheckPending command.
2025-06-07 17:23:00 +01:00
C
83a919ccd6 Merge pull request #793 from crodas/feature/wallet-swap-before-melt
Perform a swap before melting by default.
2025-06-07 15:21:19 +01:00
thesimplekid
9c3a64b029 fix: handle old nut15 spec 2025-06-06 23:36:45 +01:00
thesimplekid
3c9ceed5e0 refactor: remove unused fn 2025-06-06 13:53:36 +01:00
asmo
d9652d7f53 refactor: fixing pre commit hooks checks (#789) 2025-06-06 11:40:36 +01:00
asmo
548bbf1b40 Secret remove pub properties (#782)
* refactor: add getters to Secret and SecretData

* refactor: use new getters for Secret and SecretData in wallet receive

* refactor: using SecretData constructor

---------

Co-authored-by: thesimplekid <tsk@thesimplekid.com>
2025-06-05 12:25:56 +01:00
stefanbitcr
97abdd97e7 Remove redundant filter during restoration 2025-06-04 11:11:35 +02:00
thesimplekid
1f2654d974 Merge pull request #779 from asmogo/fix_config_example
chore: disabled mint_management_rpc. update ln_backend
2025-06-01 11:01:34 -04:00
thesimplekid
0d0c1ff17c Merge pull request #780 from gandlafbtc/patch-3
fix typo in main.rs
2025-06-01 11:01:02 -04:00
gandlafbtc
4c1e3a5941 Update example.config.toml
add example domain to lnd address in example config
2025-06-01 23:41:42 +09:00
gandlafbtc
af72d56558 fix typo in main.rs
doubble D
2025-06-01 10:42:43 +09:00
David Caseria
fe118d180f Signatory Loader (#777)
* Allow Signatory to be run with custom incoming stream

* Allow multiple signatories to be loaded on a server

* Fix merge conflict in server.rs

* Export SignatoryLoader

* Use unit error

* Use Arc instead of reference
2025-05-31 16:41:25 -04:00
dd dd
1e4d118950 chore: disabled mint_management_rpc. update ln_backend 2025-05-31 22:08:57 +02:00
David Caseria
0a832ff161 Allow Signatory to be run with custom incoming stream (#776) 2025-05-29 15:46:31 -04:00
David Caseria
98440b436c Make sqlite dependency optional for signatory (#775) 2025-05-29 12:12:27 -04:00
David Caseria
30d6b20c99 Reclaim unspent proofs by reverting transaction (#774)
* Reclaim unspent proofs by reverting transaction

* Change fn signatore to return unit
2025-05-29 12:12:10 -04:00
thesimplekid
9beb0b4256 chore: update readmes (#773) 2025-05-29 09:38:10 -04:00
C
ade48cd8a9 Introduce a SignatoryManager service. (#509)
* WIP: Introduce a SignatoryManager service.

The SignatoryManager manager provides an API to interact with keysets, private
keys, and all key-related operations, offering segregation between the mint and
the most sensible part of the mind: the private keys.

Although the default signatory runs in memory, it is completely isolated from
the rest of the system and can only be communicated through the interface
offered by the signatory manager. Only messages can be sent from the mintd to
the Signatory trait through the Signatory Manager.

This pull request sets the foundation for eventually being able to run the
Signatory and all the key-related operations in a separate service, possibly in
a foreign service, to offload risks, as described in #476.

The Signatory manager is concurrent and deferred any mechanism needed to handle
concurrency to the Signatory trait.

* Fixed missing default feature for signatory

* Do not read keys from the DB

* Removed KeysDatabase Trait from MintDatabase

All Keys operations should be done through the signatory

* Make sure signatory has all the keys in memory

Drop also foreign constraints on sqlite

* Fix race condition

* Adding debug info to failing test

* Add `sleep` in test

* Fixed issue with active auth keyset

* Fixed dependency

* Move all keys and keysets to an ArcSwap.

Since the keys and keysets exist in RAM, most wrapping functions are infallible
and synchronous, improving performance and adding breaking API changes.

The signatory will provide this information on the boot and update when the
`rotate_keyset` is executed.

Todo: Implement a subscription key to reload the keys when the GRPC server
changes the keys. For the embedded mode, that makes no sense since there is a
single way to rotate keys, and that bit is already covered.

* Implementing https://github.com/cashubtc/nuts/pull/250

* Add CLI for cdk-signatory to spawn an external signatory

Add to the pipeline the external signatory

* Update tests

* Apply suggestions from code review

Co-authored-by: ok300 <106775972+ok300@users.noreply.github.com>
Co-authored-by: thesimplekid <tsk@thesimplekid.com>

* Minor change

* Update proto buf to use the newest format

* Rename binary

* Add instrumentations

* Add more comments

* Use a single database for the signatory

Store all keys, even auth keys, in a single database. Leave the MintAuthDatabse
trait implementation for the CDK but not the signagtory

This commit also moves the cli mod to its own file

* Update dep

* Add `test_mint_keyset_gen` test

---------

Co-authored-by: ok300 <106775972+ok300@users.noreply.github.com>
Co-authored-by: thesimplekid <tsk@thesimplekid.com>
2025-05-28 11:43:30 -04:00
thesimplekid
de5f9111e1 feat: mint url flag (#765) 2025-05-24 07:17:06 -04:00
David Caseria
0e250af87a Export NUT-06 supported settings field (#764)
* Export NUT-06 supported settings field

* Fix doc test
2025-05-24 05:57:36 -04:00
thesimplekid
abf10da330 chore: update deps (#761) 2025-05-20 10:27:52 +01:00
thesimplekid
b63dc1045d refactor: nut04 and nut05 (#749) 2025-05-19 09:49:11 +01:00
thesimplekid
3920c6f9bc fix: nut18 payment request encoding/decoding (#758)
* fix: nut18 payment request encoding/decoding

* refactor: reorder nut18fns

* refactor: reorder nut18
2025-05-18 10:04:02 +01:00
thesimplekid
70944500fc chore: clippy mint_url (#759) 2025-05-18 09:05:44 +01:00
thesimplekid
c001375b32 fix: mint url trailing slash (#757) 2025-05-17 20:01:16 +01:00
thesimplekid
df0de05571 fix: get spendable to return witness (#756) 2025-05-17 20:00:49 +01:00
thesimplekid
67342ec793 feat: htlc from hash (#753)
* feat: htlc from hash

* chore: typos
2025-05-17 14:21:49 +01:00
thesimplekid
385ec4d295 feat: optional transport and nut10 secret on payment request (#744)
* feat: optional transport on payment request

* feat: create token for payment rquest

* feat: create payment request

* feat: arg append
2025-05-15 09:06:10 +01:00
thesimplekid
9ac387ae3d Ln use common (#751)
* chore: cdk-cln use common

* feat: lnd use common

* feat: lnbits use common
2025-05-14 17:29:58 +01:00
thesimplekid
e268866446 chore: clippy (#750)
* chore: clippy

* chore: fmt
2025-05-14 15:55:37 +01:00
lollerfirst
a4c2454e94 [PATCH + BUGFIX] Multinut LND re-query and use_mission_control (#746)
* patch LND re-query and use mission control + bugfix on the melt verification

* remove unusued import

* chore: fmt

---------

Co-authored-by: thesimplekid <tsk@thesimplekid.com>
2025-05-06 13:19:32 +01:00
thesimplekid
5a3a274875 fix: melt start up check (#745) 2025-05-06 11:33:24 +01:00
thesimplekid
34eb10fd9e Mpp cdk cli (#743)
* refactor: Extract user input logic into a helper function

* feat: get multiple quotes (hacky)

* refactor: cdk-cli

* refactor: cdk-cli

* feat: refactor balances
2025-05-05 08:41:54 +01:00
KnowWhoami
ffce3a8aef test: use expect/unwrap instead of anyhow 2025-05-01 03:29:43 +05:30
thesimplekid
d880bb13cc refactor: Update SupportedMethods with WsCommand enum and new constructor 2025-04-29 08:53:55 +01:00
thesimplekid
63e6a4d610 feat: use tsk testmint 2025-04-27 16:21:25 +01:00
thesimplekid
1fbb6c7aa9 fix: remove urls grpc 2025-04-23 17:05:26 +01:00
Darrell
bac711d9fd update lnbits-rs to 0.5.0 2025-04-23 16:44:59 +09:00
C
15e10c0e90 Merge pull request #730 from crodas/fix/race-condition-state-update
Fix race conditions with proof state updates.
2025-04-22 11:24:58 -04:00