Commit Graph

770 Commits

Author SHA1 Message Date
xphade
d1cae88062 Assert mint_private_key is available at startup (#208)
* Assert `mint_private_key` is available at startup

If the mint's private key is not available, the ledger cannot be created
because no pubkey can be derived. We now explicitly assert this with a
descriptive error message.

Additionally fixed some typing errors.

* Shorten error message
2023-05-14 14:12:00 +02:00
sihamon
e7df2028fa Allow to set maximum peg in/out for mint (#209)
* Allow to set maximum peg in/out for mint

* Make format

* remove duplicate error

* move business logic to ledger

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
2023-05-13 20:41:24 +02:00
callebtc
aa9b5bd55c add CONTRIBUTING.md (#211) 2023-05-13 20:11:50 +02:00
callebtc
f3cf1c69c4 [Wallet] Bugfix/enable-funding-multiple-mints (#210)
* Fix bug where no additional mints can be funded

As soon as one mint is in the database, the new multimint selector only
considers this mint, even if the `MINT_` environment variables point to
a different one. This commit fixes it by explicitly adding the set mint
URL to the selector.

Additionally did some small cleanups.

* Move mint adding to higher-level function

* bypass selection at first time

* use contextx, more explicit

* remove whitespace

---------

Co-authored-by: xphade <18196286+xphade@users.noreply.github.com>
2023-05-13 19:49:37 +02:00
callebtc
4088ab2876 Wallet REST API (#199)
* Add REST API for Cashu wallet

* Add simple way to start REST API server

* Add simple tests for wallet REST API

* Add TokenV3 to REST API

* Improve tests for wallet REST API

* Make format

* Remove unused import

* Rename nostr module for API

* Unify helper functions for CLI and API

* Make format

* Move error handling from helper functions to API

* Remove 'is_api' flag where possible

* Make format, cleanup, add comments

* Fix typo for burn also in API

* Improve error handling for API

* Add flag 'trust_new_mint' to receive command

To enable trusting or mistrusting unknown mints via API

* Allow selecting mint for sending from API

* Fix: set specific mint via API

* Fix: select mint with maximum balance via CLI

* Use different variables for mint_nr

* Allow selecting mint when sending via nostr via API

* Remove unnessecary 'is_api' flags from 'send_nostr'

* Remove HTTPException from nostr.py

* Allow selecting mint for sending with parameter also via CLI

* Allow trusting unknown mint for receiving also via CLI

* Make format

* Enable trusting unknown mint also when receiving via nostr

* Fix: wrong indentation of in receive function

* Use relative imports for wallet API

* Unify get_mint_wallet for CLI and API

* Unify send command for CLI and API

* Unify receive for CLI and API

* Catch errors in nostr via API

* Remove flag 'is_api' from verify_mints_tokenv2

* Remove cli_helpers left from last merge

* refactor cli selection

* load mint in nostr_send

* cleanup

* add cli_helpers.py

* legacy deserialization in cli

* make format

* clean up api response

* fix tests

* try pk

* verify mints in api

* try github tests

* Fix: verify_mints for API

* Uncomment verify_mints in receive of API

* update README

* Show mint url in pending

* clean up balance response

* fix test

* mint selection in api

* clean up API

* CLI: verify mint for receive -a

* clean up

* Rest -> REST

* Remove unused imports

---------

Co-authored-by: sihamon <sihamon@proton.me>
Co-authored-by: sihamon <126967444+sihamon@users.noreply.github.com>
2023-05-11 23:27:13 +02:00
callebtc
7f524927e2 [Wallet] backwards compat for breaking nut04 change use also payment_hash (#198)
* wallet: backwards compat for breaking nut04 change use also payment_hash

* make format
2023-05-11 12:50:24 +02:00
callebtc
c31f008fb4 [Mint] load the latest keyset from db based on the derivation path (#193)
* load the latest keyset from db based on the derivation path and not the on-line generated keyset id (necessary because we changed the keyset id derivation algorithm)

* better comments

* generate keys for keyset from db
2023-05-07 17:47:38 +02:00
callebtc
e9f33337db Fix/nut 04 payment hash (#191)
* payment_hash -> hash

* add aes encryption

* urlsafe base64 for free

* move files to crypto

* use random hash instead of encryption

* get rid of useless code

* simplify
2023-05-04 00:12:18 +02:00
calle
84d2471902 mint: reenable balance views (#190) 2023-05-02 00:52:26 +02:00
calle
61078ce7c8 [Mint] add mint api tests (#189)
* add mint api tests

* add /info test and fix NUT-09 contact info strings

* add test mint api

* replace with requests
2023-05-02 00:43:49 +02:00
calle
3c47ab2ac7 squash many mypy warnings (#188) 2023-05-01 23:09:16 +02:00
calle
e0a8da4f77 enable tor test (#185) 2023-05-01 22:44:06 +02:00
calle
321fc733c8 [Mint] Fix key derivation (#187)
* fix private key derivation

* add backwards compatilibity for old keysets

* bump version

* test pubkeys and private keys

* make format

* reset keys for tests

* fix cli tests
2023-05-01 22:43:51 +02:00
calle
d201b89df2 settings: add mint derivation path (#166) 2023-05-01 22:39:50 +02:00
calle
89fb2787e6 Python/relative_import (#186)
* relative import all the things

* make format

* add __init__.py to cli/

* fix mypy errors

* get rid of more mypy

* mypy fix crud.py

* fix another mypy error
2023-05-01 22:39:23 +02:00
calle
c9c8c1d12f [Wallet] coinselection of all tokens from old epochs (#164)
* coinselection of all tokens from old epochs

* delete debug prints

* cleaner

* comment
2023-05-01 22:38:43 +02:00
calle
f25e36f333 improve logging for keyests (#184) 2023-04-30 00:05:53 +02:00
moonsettler
9525655dc1 Update .env.example (#181) 2023-04-27 15:25:14 +02:00
calle
87f9241de1 [Mint] Fix key rotation (#177)
* rotate keys every 5 seconds

* every 10 seconds

* do not regenerate all past keys for each epoch cycle

* remove automatic rotation

* make format

* print to logger

* rephrase print
2023-04-26 20:20:17 +02:00
Sebastian Falbesoner
28812919ac fix double "or" typo in burn parameter validation error message (#172) 2023-04-23 13:57:08 +02:00
Steffen
b3e02e1bf0 fix: test_step2 (#174) 2023-04-23 13:56:23 +02:00
calle
c3752fb20a load keys of output, not of inputs (#169) 2023-04-17 22:16:43 +02:00
calle
faac030274 testing with updated python and poetry (#168) 2023-04-17 10:28:56 +02:00
calle
8f2a0d6c72 cleanup and comments (#163) 2023-04-16 15:51:22 +02:00
sihamon
e7d7659767 Allow setting mint as peg-out only (#160)
* Allow setting mint as peg-out only

* Update cashu/mint/router.py

* Update cashu/mint/router.py

---------

Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
2023-04-16 15:49:57 +02:00
calle
d42092d62e fix: load mint with most recent keyset (#162) 2023-04-16 15:46:17 +02:00
calle
e0470111cb fix tests (#161) 2023-04-16 13:42:52 +02:00
calle
6b631111d1 Fix/ln unsuccessful payment (#159)
* throws error for unsuccessful payment so that wallets get error message

* bump to 0.11.2
2023-04-03 20:52:14 +02:00
calle
190f78eb54 fix derivation path to 0/0/0/0 (#157) 2023-04-01 01:31:31 +02:00
calle
47f886487c nut-09 mint info (#155)
* nut-09 mint info

* bump to 0.11.1

* make format
2023-04-01 00:47:27 +02:00
calle
2ded9c8b5c use tokenObj in burn (#156)
* use tokenObj in burn

* refactor token serialization

* add tests

* rename
2023-04-01 00:46:56 +02:00
sihamon
73f8c277b9 Fix: TypeError in burn token (#152)
* Fix: TypeError in burn token

* Make format
2023-03-31 23:42:51 +02:00
callebtc
ce08e083fb Merge branch 'main' of github.com:callebtc/cashu 2023-03-29 03:40:41 +02:00
calle
e316ae4b7f bump to 0.11.0 (#153) 2023-03-29 03:40:17 +02:00
callebtc
a673077005 bump to 0.11.0 2023-03-29 03:38:17 +02:00
calle
db27105d17 TokenV3 and new Mint startup in tests (#149)
* tokenv3 send and receive
* receive v2 and v1 tokens with tests
2023-03-28 22:35:22 +02:00
sihamon
258de87a9a Fix: Mints are sorted by balance which can suddenly change (#145)
* Sort mints by URL when displaying balances

* Use mint with largest balance as default when spending

* Make format

* Display mint with largest balance in prompt
2023-03-19 15:09:03 +01:00
Tim Bouma
2267fbe9a4 Postgres with Dockerfile changes (#148)
* added postgres support

* added libpq-dev
2023-03-19 15:07:44 +01:00
calle
4784163a0e bump version to 0.10.0 (#146) 2023-03-16 01:48:48 +01:00
dyKiU
3952979a56 CLI: error handling invalid nostr client key (#144)
* improve error handling, catch and handle exception around nostr client creation

* add makefile

* apply formatting as per PR feedback

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
2023-03-16 01:48:34 +01:00
calle
70828b59d5 NUT-08 Lightning fee return (#114)
* skeleton

* works

* comments

* docsctrings ledger.py

* bump version to 0.10.

* fixes mypy stuff

* make format

* remove unwanted changes
2023-03-16 01:28:33 +01:00
sihamon
9ae222740a Add ability to force-delete pending token by send ID (#142)
* Add ability to force-delete pending token by send ID

* Make format
2023-03-16 01:07:30 +01:00
calle
f3a31fd09e use settings module (#136)
* use settings module
2023-03-16 00:59:50 +01:00
callebtc
51156799b9 add makefile 2023-03-15 16:10:11 +01:00
calle
e8011a0f78 Type annotations for bdhke (#140)
* annotate dhke

* raise for errors

* remove backwards compatibility

* remove old code

* remove test code
2023-03-09 17:45:50 +01:00
calle
2d3a29ad94 make format (#139) 2023-03-08 19:27:01 +01:00
sihamon
4d391382b1 Allow to receive all pending tokens (#132) 2023-03-08 19:10:19 +01:00
sihamon
cd1fddb524 Add ability to show n pending tokens starting from offset (#135) 2023-03-08 19:08:56 +01:00
calle
3333102327 lightning: add fakewallet (#134)
* lightning: add fakewallet

* make format

* fix mypy

* make backend configurable

* weird mypy
2023-03-07 17:49:27 +01:00
callebtc
3828da294b update readme 2023-03-07 11:03:31 +01:00