* 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>
* 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>
* 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
* 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