* Add exclusion constraint to prevent duplicate items within 10m
* Fix missing extension
* More user-friendly error message
* Use MD5 for slightly better performance
* Always use MD5 for columns of type TEXT
* shift constraint into the future
---------
Co-authored-by: k00b <k00b@stacker.news>
* Add timeout to all wallet API calls
* Pass timeout signal to wallet API
* Fix timeout error message not shown on timeout
* Fix cross-fetch throws generic error message on abort
* Fix wrong method in error message
* Always use FetchTimeoutError
* Catch NDK timeout error to replace with custom timeout error
* Also use 15s for NWC connect timeout
* Add timeout delay
* Use same naming scheme between ln containers and env vars
* Add router_lnd container
* Only open channels to router_lnd
* Use 1sat base fee and 0ppm fee rate
* Add script to test routing
* Also fund router_lnd wallet
* Receiver fallbacks
* Rename to predecessorId
* Remove useless wallet table join
* Missing renaming to predecessor
* Fix payment stuck on sender error
We want to await the invoice poll promise so we can check for receiver errors, but in case of sender errors, the promise will never settle.
* Don't log failed forwards as sender errors
* fix check for receiver error
---------
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>
* Fix mentions for pessimistic actions
* (item)mentions should use tx not models
---------
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
Co-authored-by: k00b <k00b@stacker.news>
* Fix 'Cannot mix BigInt and other types' on zaps
* Also add sybilFeePercent to context in worker
* add paymentMethod to context
---------
Co-authored-by: k00b <k00b@stacker.news>
* Derive wallet status from logs
* Add send/recv icons
* Set status individually for send and recv
* Move status logic into own function
* Add LNbits, Blink, CLN, LND, phoenixd logo
* Fix wallet.status.any not using Status enum
* Fix WebLN being weird
* Use phoenixd logo with text
* Also use wallet logo on config page
* Also poll logs for wallet status
* Use logger.info for logs not relevant for wallet status
* Remove no longer used wallet badges
* Crop LND logo like other logos
* Fix all wallets show 'configure'
* Fix wallet status not respecting enabled
* Fix wallet.def.requiresConfig undefined
* Fix banner shown for WebLN
* Fix attach shown when configured
* Filter by context.status to determine wallet status
* Fix +- shown without context
* Fix missing theme support for wallet logos
If an item has a lot of comments, it gets ranked higher.
When an item is now downzapped, it can become outlawed but still show up on the front page because of the comments.
This fixes it by filtering outlawed items out instead of relying on the ranking to make them not show up.
* Clarify conditions to show edit countdown
* Fix edit countdown shown for deleted items
* refactor: Minimize canEdit state
I noticed that only anonEdit requires state because it needs to use useEffect to fetch from local storage.
The other conditions can simply be checked during render.
* refactor: Use datePivot for edit countdown
* Inject wallet logger interface
* Include method in NWC logs
* Fix wrong page total
* Poll for new logs every second
* Fix overlapping pagination
* Remove unused total
* Better logs for incoming payments
* Use _setLogs instead of wrapper
* Remove inconsistent receive log
* Remove console.log from wallet logger on server
* Fix missing 'wallet detached' log
* Fix confirm_withdrawl code
* Remove duplicate autowithdrawal log
* Add context to log
* Add more context
* Better table styling
* Move CSS for wallet logs into one file
* remove unused logNav class
* rename classes
* Align key with second column
* Fix TypeError if context empty
* Check content-type header before calling res.json()
* Fix duplicate 'failed to create invoice'
* Parse details from LND error
* Fix invalid DOM property 'colspan'
* P2P zap logs with context
* Remove unnecessary withdrawal error log
* the code assignment was broken anyway
* we already log withdrawal errors using .catch on payViaPaymentRequest
* Don't show outgoing fee to receiver to avoid confusion
* Fix typo in comment
* Log if invoice was canceled by payer
* Automatically populate context from bolt11
* Fix missing context
* Fix wrap errors not logged
* Only log cancel if client canceled
* Remove unused imports
* Log withdrawal/forward success/error in payment flow
* Fix boss not passed to checkInvoice
* Fix TypeError
* Fix database timeouts caused by logger
The logger shares the same connection pool with any currently running transaction.
This means that we enter a classic deadlock when we await logger calls: the logger call is waiting for a connection but the currently running transaction is waiting for the logger call to finish before it can release a connection.
* Fix cache returning undefined
* Fix typo in comment
* Add padding-right to key in log context
* Always use 'incoming payment failed:'
---------
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>