* auth server
* cleaning up
* auth ledger class
* class variables -> instance variables
* annotations
* add models and api route
* custom amount and api prefix
* add auth db
* blind auth token working
* jwt working
* clean up
* JWT works
* using openid connect server
* use oauth server with password flow
* new realm
* add keycloak docker
* hopefully not garbage
* auth works
* auth kinda working
* fix cli
* auth works for send and receive
* pass auth_db to Wallet
* auth in info
* refactor
* fix supported
* cache mint info
* fix settings and endpoints
* add description to .env.example
* track changes for openid connect client
* store mint in db
* store credentials
* clean up v1_api.py
* load mint info into auth wallet
* fix first login
* authenticate if refresh token fails
* clear auth also middleware
* use regex
* add cli command
* pw works
* persist keyset amounts
* add errors.py
* do not start auth server if disabled in config
* upadte poetry
* disvoery url
* fix test
* support device code flow
* adopt latest spec changes
* fix code flow
* mint max bat dynamic
* mypy ignore
* fix test
* do not serialize amount in authproof
* all auth flows working
* fix tests
* submodule
* refactor
* test
* dont sleep
* test
* add wallet auth tests
* test differently
* test only keycloak for now
* fix creds
* daemon
* fix test
* install everything
* install jinja
* delete wallet for every test
* auth: use global rate limiter
* test auth rate limit
* keycloak hostname
* move keycloak test data
* reactivate all tests
* add readme
* load proofs
* remove unused code
* remove unused code
* implement change suggestions by ok300
* add error codes
* test errors
* skip db lock check in regtests
* revert?
* try this
* do not dispose conftests
* remove return
* test this
* try auto
* dispose stuff
* try uri=true
* remove the other flag
* move test
* reduce tests
* reduce more
* keep one
* skip on github?
* only skip in regtest
* trigger again
* restore cashu/mint/ledger.py
* clean up db
* db: table lock
* db.table_with_schema
* fix encrypt.py
* postgres nowait
* add timeout to lock
* melt quote state in db
* kinda working
* kinda working with postgres
* remove dispose
* getting there
* porperly clean up db for tests
* faster tests
* configure connection pooling
* try github with connection pool
* invoice dispatcher does not lock db
* fakewallet: pay_if_regtest waits
* pay fakewallet invoices
* add more
* faster
* slower
* pay_if_regtest async
* do not lock the invoice dispatcher
* test: do I get disk I/O errors if we disable the invoice_callback_dispatcher?
* fix fake so it workss without a callback dispatchert
* test on github
* readd tasks
* refactor
* increase time for lock invoice disatcher
* try avoiding a race
* remove task
* github actions: test regtest with postgres
* mint per module
* no connection pool for testing
* enable pool
* do not resend paid event
* reuse connection
* close db connections
* sessions
* enable debug
* dispose engine
* disable connection pool for tests
* enable connection pool for postgres only
* clean up shutdown routine
* remove wait for lightning fakewallet lightning invoice
* cancel invoice listener tasks on shutdown
* fakewallet conftest: decrease outgoing delay
* delay payment and set postgres only if needed
* disable fail fast for regtest
* clean up regtest.yml
* change order of tests_db.py
* row-specific mint_quote locking
* refactor
* fix lock statement
* refactor swap
* refactor
* remove psycopg2
* add connection string example to .env.example
* remove unnecessary pay
* shorter sleep in test_wallet_subscription_swap
* test for spending output again
* first gernerate (which can fail) then invalidate (db and memory)
* use external get_db_connection function to be compatible with existing Database class in LNbits
* index on db and read spent proofs from db
* add benchmark for testing
* remove benchmark
* add option to disable cached secrets
* disable python 3.9 tests
* 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
* [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>