* 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>
* 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>
* cache or remove unecessary calls to lnd
* avoid redundant grpc calls in state machine
* store preimage whenever available
* enhancements post self-code review
* small refinements
* fixes
* fix lnurl-verify
* prevent wallet logger throwing on idb close
* fix promise in race while waiting for payment
* not-custodial zap scaffolding
* invoice forward state machine
* small refinements to state machine
* make wrap invoice work
* get state machine working end to end
* untested logic layout for paidAction invoice wraps
* perform pessimisitic actions before outgoing payment
* working end to end
* remove unneeded params from wallets/server/createInvoice
* fix cltv relative/absolute confusion + cancelling forwards
* small refinements
* add p2p wrap info to paidAction docs
* fallback to SN invoice when wrap fails
* fix paidAction retry description
* consistent naming scheme for state machine
* refinements
* have sn pay bounded outbound fee
* remove debug logging
* reenable lnc permissions checks
* don't p2p zap on item forward splits
* make createInvoice params json encodeable
* direct -> p2p badge on notifications
* allow no tls in dev for core lightning
* fix autowithdraw to create invoice with msats
* fix autowithdraw msats/sats inconsitency
* label p2p zaps properly in satistics
* add fees to autowithdrawal notifications
* add RETRYING as terminal paid action state
* Update api/paidAction/README.md
Co-authored-by: ekzyis <ek@stacker.news>
* Update api/paidAction/README.md
Co-authored-by: ekzyis <ek@stacker.news>
* Update api/lnd/index.js
Co-authored-by: ekzyis <ek@stacker.news>
* ek suggestions
* add bugetable to nwc card
* get paranoid with numbers
* better finalize retries and better max timeout height
* refine forward failure transitions
* more accurate satistics p2p status
* make sure paidaction cancel in state machine only
* dont drop bolt11s unless status is not null
* only allow PENDING_HELD to transition to FORWARDING
* add mermaid state machine diagrams to paid action doc
* fix cancel transition name
* cleanup readme
* move forwarding outside of transition
* refine testServerConnect and make sure ensureB64 transforms
* remove unused params from testServerConnect
---------
Co-authored-by: ekzyis <ek@stacker.news>
Co-authored-by: k00b <k00b@stacker.news>
* wip backend optimism
* another inch
* make action state transitions only happen once
* another inch
* almost ready for testing
* use interactive txs
* another inch
* ready for basic testing
* lint fix
* inches
* wip item update
* get item update to work
* donate and downzap
* inchy inch
* fix territory paid actions
* wip usePaidMutation
* usePaidMutation error handling
* PENDING_HELD and HELD transitions, gql paidAction return types
* mostly working pessimism
* make sure invoice field is present in optimisticResponse
* inches
* show optimistic values to current me
* first pass at notifications and payment status reporting
* fix migration to have withdrawal hash
* reverse optimism on payment failure
* Revert "Optimistic updates via pending sats in item context (#1229)"
This reverts commit 93713b33df.
* add onCompleted to usePaidMutation
* onPaid and onPayError for new comments
* use 'IS DISTINCT FROM' for NULL invoiceActionState columns
* make usePaidMutation easier to read
* enhance invoice qr
* prevent actions on unpaid items
* allow navigation to action's invoice
* retry create item
* start edit window after item is paid for
* fix ux of retries from notifications
* refine retries
* fix optimistic downzaps
* remember item updates can't be retried
* store reference to action item in invoice
* remove invoice modal layout shift
* fix destructuring
* fix zap undos
* make sure ItemAct is paid in aggregate queries
* dont toast on long press zap undo
* fix delete and remindme bots
* optimistic poll votes with retries
* fix retry notifications and invoice item context
* fix pessimisitic typo
* item mentions and mention notifications
* dont show payment retry on item popover
* make bios work
* refactor paidAction transitions
* remove stray console.log
* restore docker compose nwc settings
* add new todos
* persist qr modal on post submission + unify item form submission
* fix post edit threshold
* make bounty payments work
* make job posting work
* remove more store procedure usage ... document serialization concerns
* dont use dynamic imports for paid action modules
* inline comment denormalization
* create item starts with median votes
* fix potential of serialization anomalies in zaps
* dont trigger notification indicator on successful paid action invoices
* ignore invoiceId on territory actions and add optimistic concurrency control
* begin docs for paid actions
* better error toasts and fix apollo cache warnings
* small documentation enhancements
* improve paid action docs
* optimistic concurrency control for territory updates
* use satsToMsats and msatsToSats helpers
* explictly type raw query template parameters
* improve consistency of nested relation names
* complete paid action docs
* useEffect for canEdit on payment
* make sure invoiceId is provided when required
* don't return null when expecting array
* remove buy credits
* move verifyPayment to paidAction
* fix comments invoicePaidAt time zone
* close nwc connections once
* grouped logs for paid actions
* stop invoiceWaitUntilPaid if not attempting to pay
* allow actionState to transition directly from HELD to PAID
* make paid mutation wait until pessimistic are fully paid
* change button text when form submits/pays
* pulsing form submit button
* ignore me in notification indicator for territory subscription
* filter unpaid items from more queries
* fix donation stike timing
* fix pending poll vote
* fix recent item notifcation padding
* no default form submitting button text
* don't show paying on submit button on free edits
* fix territory autorenew with fee credits
* reorg readme
* allow jobs to be editted forever
* fix image uploads
* more filter fixes for aggregate views
* finalize paid action invoice expirations
* remove unnecessary async
* keep clientside cache normal/consistent
* add more detail to paid action doc
* improve paid action table
* remove actionType guard
* fix top territories
* typo api/paidAction/README.md
Co-authored-by: ekzyis <ek@stacker.news>
* typo components/use-paid-mutation.js
Co-authored-by: ekzyis <ek@stacker.news>
* Apply suggestions from code review
Co-authored-by: ekzyis <ek@stacker.news>
* encorporate ek feeback
* more ek suggestions
* fix 'cost to post' hover on items
* Apply suggestions from code review
Co-authored-by: ekzyis <ek@stacker.news>
---------
Co-authored-by: ekzyis <ek@stacker.news>