* update
* working
* test with lnd
* update action
* cache poetry
* add lndrest
* enable regtest
* add regtests.yml
* poetry version
* add helpers
* save
* run legend regtest fork
* actually start
* use bash
* give rights
* remove cache?
* change order
* tests succeed with lndrestwallet
* check if wallet is set
* settings for regtest
* fix fakewallet test
* remove wacky balance check
* adjust permissions
* try with sudo
* adjust example
* remove eclair
* mint does not start yet
* fix import
* revert mint db migrations
* handle zero fee case
* cli: adjust fee message
* wallet: replace requests with httpx
* clean up
* rename http client decorator
* fix pending check in main, todo: TEST PROXIES WITH HTTPX
* fix up
* use httpx for nostr as well
* update packages to same versions as https://github.com/lnbits/lnbits/pull/1609/files
* fix proof deserialization
* check for string
* tests passing
* adjust wallet api tests
* lockfile
* add correct responses to Lightning interface and delete melt_id for proofs for which the payent has failed
* fix create_invoice checking_id response
* migrations atomic
* proofs are stored automatically when created
* make format
* use bolt11 lib
* stricter type checking
* add fee response to payments
* assert fees in test_melt
* test that mint_id and melt_id is stored correctly in proofs and proofs_used
* remove traces
* refactor: Lightning interface into own file and LedgerCrud with typing
* fix tests
* fix payment response
* rename variable
* accept new keyset id calculation, cache keysets, remove duplicate representations
* remove comments
* check if keyset is present for DLEQ
* load keys from db if available
* store new keyset
* make mypy happy
* make mypy happy
* precommit
* produce dleq
* start working on verification
* wip dleq
* Use C_ instead of C in verify DLEQ! (#176)
* Fix comments (DLEQ sign error)
* Fix alice_verify_dleq in d_dhke.py
* Fix_generate_promise in ledger.py
* Fix verify_proofs_dleq in wallet.py
* Fix: invalid public key (#182)
* Use C_ instead of C in verify DLEQ!
* Fix comments (DLEQ sign error)
* Fix alice_verify_dleq in d_dhke.py
* Fix_generate_promise in ledger.py
* Fix verify_proofs_dleq in wallet.py
* Fix: invalid public key
* Exception: Mint Error: invalid public key
* Update cashu/wallet/wallet.py
---------
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
* Update cashu/core/b_dhke.py
* Update tests/test_cli.py
* verify all constructed proofs
* dleq upon receive
* serialize without dleq
* all tests passing
* make format
* remove print
* remove debug
* option to send with dleq
* add tests
* fix test
* deterministic p in step2_dleq and fix mypy error for hash_to_curve
* test crypto/hash_e and crypto/step2_bob_dleq
* rename A to K in b_dhke.py and test_alice_verify_dleq
* rename tests
* make format
* store dleq in mint db (and readd balance view)
* remove `r` from dleq in tests
* add pending output
* make format
* works with pre-dleq mints
* fix comments
* make format
* fix some tests
* fix last test
* test serialize dleq fix
* flake
* flake
* keyset.id must be str
* fix test decorators
* start removing the duplicate fields from the dleq
* format
* remove print
* cleanup
* add type anotations to dleq functions
* remove unnecessary fields from BlindedSignature
* tests not working yet
* spelling mistakes
* spelling mistakes
* fix more spelling mistakes
* revert to normal
* add comments
* bdhke: generalize hash_e
* remove P2PKSecret changes
* revert tests for P2PKSecret
* revert tests
* revert test fully
* revert p2pksecret changes
* refactor proof invalidation
* store dleq proofs in wallet db
* make mypy happy
---------
Co-authored-by: moonsettler <moonsettler@protonmail.com>
* [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
* [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
* 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>
* 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>
* 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
* 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
* 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
* 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
* 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
* 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>
* 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