* wallet: add fees to outputs for melt that requires a split
* add test that requires a swap
* verify test fails, will revert
* revert true
* hopefully fix the tests
* fix default fee selection
* cleanup and renamings
* cleanup coinselect function, estimate fees
* fix test
* add comments
* weird error
* `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
* `_set_proofs_pending` performs DB related "proofs are spendable" check inside the lock.
* move _verify_spent_proofs_and_set_pending to write.py
* edit logging
---------
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
* 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
* Mint: fix loading b64 keysets and Wallet: option to set b64 inactive
* typo
* readd include fees flag (unused)
* fix test to respect new default False flag
* fix default flag for regtest
* catch error if receive -a doesnt work with a certain mint
* receive pending tokens from multiple mints
* receive pending from all mints and catch exceptions
* 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
* 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
* log cln error
* return a string
* update corelightningrest to work with latest ver using rune
* fix mpp spec and backend support check
* refactor validation in ledger
* remove weird error
* fix mpp melt model
* corelightningrest.py: Added Multi-Mint payout support
lndrest.py: fix `quote.amount` is not always in sats + better checks
* small fix
* Fix quote.unit str2unit conversion + add missing imports
* settings enable mpp corelightning (default false)
* small fix
* fix `paid_invoice_stream`
* make format
* handle runes
* load rune
* rename to MINT_CORELIGHTNING_REST_RUNE
* try without cert
* port
* try except callback dispatcher
* clean up cln-rest streaming parser
* conftest: mint_corelightning_enable_mpp
* enable mpp in regtest.yaml
* fix error handling clnrest, remove lndrest changes
* CLNRest + CoreLightningRest
* clean up corelightningrest and get last index before starting the stream
* clean up
---------
Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
Co-authored-by: Richard Bensberg <r@coinbatsu.com>
* 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