* 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
* nut-19 sign mint quote
* ephemeral key for quote
* `mint` adjustments + crypto/nut19.py
* wip: mint side working
* fix import
* post-merge fixups
* more fixes
* make format
* move nut19 to nuts directory
* `key` -> `privkey` and `pubkey`
* make format
* mint_info method for nut-19 support
* fix tests imports
* fix signature missing positional argument + fix db migration format not correctly escaped + pass in NUT-19 keypair to `request_mint` `request_mint_with_callback`
* make format
* fix `get_invoice_status`
* rename to xx
* nutxx -> nut20
* mypy
* remove `mint_quote_signature_required` as per spec
* wip edits
* clean up
* fix tests
* fix deprecated api tests
* fix redis tests
* fix cache tests
* fix regtest mint external
* fix mint regtest
* add test without signature
* test pubkeys in quotes
* wip
* add compat
---------
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
* `PaymentResult`
* ledger: rely on PaymentResult instead of paid flag. Double check for payments marked pending.
* `None` is `PENDING`
* make format
* reflected changes API tests where `PaymentStatus` is used + reflected changes in lnbits
* reflect changes in blink backend and tests
* fix lnbits get_payment_status
* remove paid flag
* fix mypy
* remove more paid flags
* fix strike mypy
* green
* shorten all state checks
* fix
* fix some tests
* gimme ✅
* fix............
* fix lnbits
* fix error
* lightning refactor
* add more regtest tests
* add tests for pending state and failure
* shorten checks
* use match case for startup check - and remember modified checking_id from pay_invoice
* fix strike pending return
* new tests?
* refactor startup routine into get_melt_quote
* test with purge
* refactor blink
* cleanup responses
* blink: return checking_id on failure
* fix lndgrpc try except
* add more testing for melt branches
* speed things up a bit
* remove comments
* remove comments
* block pending melt quotes
* remove comments
---------
Co-authored-by: lollerfirst <lollerfirst@gmail.com>
* NUT-04: add description
* skip test for deprecated api
* fix for lndgrpc
* add test for cli
* add two random tests
* add max length to request model validator
* skip cli test with description for deprecated api
* add cli test for invoice command
* default value to None
* Wallet: add flag --force-swap to send command
* Reame split to swap across codebase
* rename remaining splits to swap
* fix restore index with multiple keysets
* fix wallet api restore
* wip: handle tokenv4 if the keyset is base64
* wip
* Tokens now dataclasses
* Deserialize DLEQ from string
* add tokenv3/v4 base64 keyset ID tests
* fix cli
* change response model of NUT-05 to include payment_preimage and change (NUT-08)
* fix tests
* crud: same expiry as timestamp
* fix expiry handling
* add api tests to check new models
* add websockets for quote updates
* add test (not working)
* wip: emit events to everyone
* wip: emit events to everyone
* wip, lots of things broken but invoice callback works
* wip
* add wip files
* tests almost passing
* add task
* refactor nut constants
* startup fix
* works with old mints
* wip cli
* fix mypy
* remove automatic invoice test now with websockets
* remove comment
* better logging
* send back response
* add rate limiter to websocket
* add rate limiter to subscriptions
* refactor websocket ratelimit
* websocket tests
* subscription kinds
* doesnt start
* remove circular import
* update
* fix mypy
* move test file in test because it fails if it runs later... dunno why
* adjust websocket NUT-06 settings
* local import and small fix
* disable websockets in CLI if "no_check" is selected
* move subscription test to where it was
* check proof state with callback, add tests
* tests: run mint fixture per module instead of per session
* subscription command name fix
* test per session again
* update test race conditions
* fix tests
* clean up
* tmp
* fix db issues and remove cached secrets
* fix tests
* blindly try pipeline
* remove comments
* comments
* wip
* wip
* model
* refactor wallet transactions
* refactor wallet
* sending with fees works and outputs fill up the wallet
* wip work
* ok
* comments
* receive with amount=0
* correctly import postmeltrequest
* fix melt amount
* tests working
* remove mint_loaded decorator in deprecated wallet api
* wallet works with units
* refactor: melt_quote
* fix fees
* add file
* fees for melt inputs
* set default input fee for internal quotes to 0
* fix coinselect
* coin selection working
* yo
* fix all tests
* clean up
* last commit added fees for inputs for melt transactions - this commit adds a blanace too low exception
* fix fee return and melt quote max allowed amount check during creation of melt quote
* clean up code
* add tests for fees
* add melt tests
* update wallet fee information