Commit Graph

47 Commits

Author SHA1 Message Date
dni ⚡
e374d32df7 [CHORE] updating dependencies, mainly fastapi (#302)
* [CHORE] updating dependencies, mainly fastapi

i updated all lib that i could. :) test seem to pass

downgrade uvicorn for mypy to pass

chore

fixup

formatting

* make flake8 didnt flake tests
2023-08-24 11:09:07 +02:00
dni ⚡
4f5d3c66fe quickfix ruff (#303) 2023-08-24 10:19:44 +02:00
dni ⚡
88393fa4c4 [DEV] add ruff and remove isort and flake (#300)
* [DEV] add ruff and remove isort and flake
- precommit
- workflow
- Makefile

updated black

* configure black to use default line-length

* reformat to 88 chars line-length

* fix ugly comments
2023-08-24 09:47:47 +02:00
dni ⚡
0a5beb75a2 [FEAT] Improve tests (#296)
* test cli arent async tests

* unused SERVER_ENDPOINT var

* async test werent marked async

* make test didnt use correct ports

* enable more verbose test logging

* refactor conftest variable

* not needed anymore are set in conftest

* using test_data now for conftest

* formatting

* comment out invalid hex

* remove test dir before creating it to be sure

* keep data from altest testrun and ad test_data to ignore

* ignore error for CI

* add duplicate env var

* fix confest

* Update pyproject.toml

* fix up tests

* short p2pk locktimes for faster tests

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
2023-08-06 18:35:34 +02:00
dni ⚡
e3ed00640f FEAT: Add flake8 (#267)
* init flake8

* exclude nostr client, and add ds_store to gitignore

* fix flake8 F811 issue, redefinition of unused variables

* add flake8 to workflow

* F401 unused imports

* F541 f-string is missing placeholders

* E501 line too long > 150 characters

* E722 no bare except

* E402 module level import not at top of file

* F405 no star imports

* E712 comparison to False should be 'if cond is False:'

* F841 local variable is assigned to but never used

* E266 too many leading '#' for block comment

* E265, E261

* E713 test for membership should be 'not in'

* E711, E741

E741 ambiguous variable name 'l'
E711 comparison to None should be 'if cond is None:'

* flake config

* isort

* refactor makefile flake8 usage

* reflaking the rebase

* black

* fix tests?

* black

* fix line lenght it test_cli

* sort out makefile

* fix strings

* reintroduce black-check

* reflake and mypy

* isort

* Update cashu/wallet/wallet.py

Co-authored-by: Angus Pearson <angus@toaster.cc>

* Update cashu/mint/ledger.py

Co-authored-by: Angus Pearson <angus@toaster.cc>

---------

Co-authored-by: Angus Pearson <angus@toaster.cc>
2023-07-28 18:42:16 +02:00
callebtc
3d676dd35f Add custom error types (#290)
* add error types

* better subclassing

* add response models

* fix comments

* add response_description to mint endpoints
2023-07-25 23:26:50 +02:00
callebtc
b196c34427 [WIP] [NUTs] NUT-06 update: deprecate amount field in /split (#263)
* mint upgraded and still backwards compatible

* cleanup

* fix tests

* fix things

* add deprecated message to new struct

* fix test

* fix typo

* readd endpoint that got lost during merge

* version bump in pyproject.toml

* remove wallet backwards compatibility because it makes no sense

* comment for backwards compat

* fix comment
2023-07-25 11:13:20 +02:00
callebtc
0b2468914d Determinstic secrets / ecash restore (#131)
* first working version but some sats go missing

* back at it

* make format

* restore to main

* move mint database

* fix some tests

* make format

* remove old _construct_outputs we reintroduced in merge with main

* add type annotations

* add wallet private key to tests

* wallet: load proofs

* fix tests

* _generate_secrets with deterministic generation (temporary)

* allow wallet initialization with custom private key

* add pk to wallet api test

* mint scope=module

* remove private_key from test_wallet.py to see if it helps with the github tests

* readd private keys to tests

* workflow without env

* add more private key!

* readd env

* ledger scope session

* add default private key for testing

* generate private keys if not available

* testing

* its working!!!

* first iteration of bip32 working

* get mint info and add many type annotations

* tests

* fix tests with bip32

* restore from multiple mints

* disable profiler

* make format

* failed POST /mint do not increment secret counter

* store derivation path in each token

* fix tests

* refactor migrations so private keys can be generated by the wallet with .with_db() classmethod

* start fixing tests

* all tests passing except those that need to set a specific private key

* bip39 mnemonic to seed - with db but restore doesnt work yet with custom seed

* mnemonic restore works

* enter mnemonic in cli

* fix tests to use different mnemonic

* properly ask user for seed input

* tests: dont ask for inputs

* try to fix tests

* fix cashu -d

* fixing

* bump version and add more text to mnemonic enter

* add more comments

* add many more comments and type annotations in the wallet

* dont print generated mnemonic and dont wait for input

* fix test

* does this fix tests?

* sigh....

* make format

* do not restore from an initialized wallet

* fix mnemonics

* fix nitpicks

* print wallet name if nonstandard wallet

* fix merge error and remove comments

* poetry lock and requirements

* remove unused code

* fix tests

* mnemonic.lower() and add keyset id if not present for backwards compat

* edit comment
2023-07-24 13:42:56 +02:00
callebtc
337456333e P2PK: Sighash flags and multisig ecash because why not (#284)
* refactor split

* add sigflag to Secret base model

* add better comments

* add comments

* add witnesses inside /split

* more comments

* sign outputs if proofs indicate it

* add signature to outputs but mint does not check it yet

* multiple scriptsigs

* signatures on outputs

* add multisig tests

* rename test

* timelock -> locktime

* move parameters to tags

* convert back to List[List[str]]

* errors are back!

* fix all the stuff

* more testing

* make format
2023-07-18 21:38:31 +02:00
callebtc
73b015b642 Nut07/proof pending (#277)
* add pending state

* proofs spendable check and tests

* bump version to 0.12.3

* remove sleep for testing

* comment clarify

* use list comprehension in pending list
2023-07-08 22:50:17 +02:00
callebtc
01d498309b [Wallet/mint] P2PK with timelocks (#270)
* p2pk with nostr privatekey and timelocks

* add p2pk

* fix test

* fix test with custom secret

* sign whole split transaction

* p2pk signature now commits to entire secret and thus to a nonce

* use schnorr signatures

* revamp P2SH and P2PK with new Secret model

* test p2pk

* add comments

* add nostr private key to tests

* fix nostr receive

* make format

* test redemption after timelock

* refactor Server.serialize()

* sign sha256(secret)

* add optional refund pubkey that triggers after timelock

* use nostr private key for now (including nsec parser)

* use nostr private key and fix tests

* bump version to 0.12.2
2023-07-02 01:56:05 +02:00
callebtc
77278127ae [Wip] [Wallet] NUT-09: Get mint info and add many type annotations (#262)
* get mint info and add many type annotations

* tests

* make format
2023-06-25 02:21:40 +02:00
callebtc
af3e82691e [Wallet] Allow minting of specific amounts (#248)
* Allow to start wallet API by cashu --daemon

* Provide access to wallet name via settings

* Make format

* Use flag is_eager for daemon option

* add setting api_host

* fix: add missing amount

* refactor mint

* cli and api for splitting and tests

* invoice balance?

* remove balance checks until I know why it doesnt update

* remove all balance checks from tests

* delete old code

* remove debug logs

---------

Co-authored-by: sihamon <sihamon@proton.me>
2023-06-10 20:45:03 +02:00
calle
f3a31fd09e use settings module (#136)
* use settings module
2023-03-16 00:59:50 +01:00
calle
a7eef68c97 wallet: load keys without keysets (#123)
* wallet: load keys without keysets

* fix cli
2023-03-05 02:51:20 +01:00
calle
e696e19479 wallet: invalidate proofs without checking with mint (#122) 2023-03-04 22:02:24 +01:00
calle
23f2b58430 wallet: mint specific amounts (#121)
* wallet: mint specific amounts

* make format
2023-03-04 21:49:39 +01:00
calle
9acac156a7 Testing/click (#99)
* annotate context

* remove whitespace

* test CLI

* make format

* github action with submodule checkout

* maybe now

* vllt ja nu

* und no?

* back to normal mint running

* githuuuuub

* COME OOOON!

* SO. CLOSE.

* make format

* new test

* fix it

* make format

* receive v1 token test
2023-01-19 14:13:54 +01:00
callebtc
75bbf12679 merge 2023-01-14 20:20:06 +01:00
callebtc
db034a0e00 fix tests 2023-01-11 03:41:11 +01:00
callebtc
53a8387a0d refactor 2023-01-11 02:57:59 +01:00
callebtc
5fce0cf6e8 test: GET /keys/{id} 2022-12-25 11:31:46 +01:00
callebtc
0840ee184c fix typing 2022-12-24 15:43:48 +01:00
callebtc
cdabc86ba9 defer unpending 2022-12-14 23:27:40 +01:00
callebtc
d8fbdf4b8f client test that mint returns tokens with correct keyset id 2022-10-15 01:12:52 +02:00
callebtc
6f913e3cc9 make format 2022-10-15 00:59:21 +02:00
callebtc
3437af041e ability to specify the keyset for generating promises mint 2022-10-13 20:07:04 +02:00
callebtc
7eb8ec8ccc make format 2022-10-11 00:49:27 +02:00
callebtc
6838b0be05 mypy 2022-10-11 00:41:55 +02:00
callebtc
f35c1f3bfc make format 2022-10-09 23:40:34 +02:00
callebtc
f127c8dfb7 testing 2022-10-09 23:40:01 +02:00
callebtc
1bdb4568c4 started 2022-10-07 16:30:50 +02:00
callebtc
149d69f99d isort 2022-10-05 20:03:04 +02:00
callebtc
7f1f3e3574 test 2022-10-05 20:01:26 +02:00
callebtc
a264dd5c6d fst_ to frst_ and snd_ to scnd_ 2022-10-05 19:53:31 +02:00
callebtc
78e94ecf66 p2sh test 2022-10-03 21:19:45 +02:00
callebtc
68a2fcd691 tests 2022-10-02 19:49:17 +02:00
callebtc
af54161cb3 isort 2022-10-02 19:27:14 +02:00
callebtc
50b47aa830 check for secret in mint 2022-10-01 03:10:48 +02:00
callebtc
b6c4d676f6 refactor deterministic key generation 2022-10-01 02:52:48 +02:00
callebtc
5d640efc75 determinstic secrets for multiple tokens 2022-10-01 02:33:47 +02:00
callebtc
6789a87c14 pay to secret 2022-09-30 03:10:47 +02:00
callebtc
b5347077c2 bump 2022-09-28 17:47:58 +02:00
callebtc
fac578b956 isort 2022-09-17 16:13:11 +03:00
callebtc
193133f0b0 works 2022-09-16 15:42:19 +03:00
callebtc
0f12ddea48 uses base models for almost everything 2022-09-16 14:02:54 +03:00
callebtc
0e0d094044 refactor tests 2022-09-15 16:08:13 +03:00