Commit Graph

834 Commits

Author SHA1 Message Date
sihamon
08ceeda36f [Wallet] Define responses for API (#233)
* Define responses for wallet API

* Make format
2023-05-22 14:31:29 +02:00
Erik Brakke
a3ded1cd94 Add secp256k1 deps to dockerfile (#235)
Co-authored-by: Erik Brakke <erik@datasembly.com>
2023-05-22 14:25:26 +02:00
callebtc
151fa1421a db: postgres cast int to bigint (#231)
* db: postgres cast int to bigint

* migrations: use db.big_int
2023-05-19 08:59:13 +02:00
Angus Pearson
730772d6a7 [Mint] LNBits backend refactor httpx (#234) 2023-05-19 08:55:19 +02:00
Angus Pearson
e25100c1e0 Mint API: Check ?amount is within a sensible range (#226) 2023-05-18 22:31:20 +02:00
callebtc
5f3f88c8ed [Mint] rewrite lnbits backend with httpx (#230)
* rewrite lnbits backend with httpx

* add httpx
2023-05-18 19:47:44 +02:00
callebtc
f0735cfc4a fix postgres views, closes #206 (#222) 2023-05-16 22:14:13 +02:00
callebtc
d0283670d3 Refactor Compat and Database for LNbits comaptibility (#219)
* remove changes to Compat and Database so its compatible with the classes from LNbits

* ledger.py: Annotate Connection type

* fix invoice memp
2023-05-15 22:15:56 +02:00
callebtc
6272aee189 make format (#218) 2023-05-15 17:11:02 +02:00
Semisol
d4c7a15e89 add transactions and locking for certain operations (#217) 2023-05-15 17:09:28 +02:00
callebtc
ddd8cebdb0 more logging (#216) 2023-05-15 00:37:46 +02:00
callebtc
4789e2a504 Mint/moremore_traces (#215)
* more trace logging

* a lot more logging
2023-05-15 00:15:07 +02:00
callebtc
352f77f9e9 more traces (#214) 2023-05-14 23:39:03 +02:00
callebtc
68d9020cb3 mint: add trace logs (#213) 2023-05-14 23:06:35 +02:00
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