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