* feat: nwc create_connection command (WIP)
* feat: allow creating superuser apps from the ui
* fix: pass methods rather than scopes in create_connection method
* chore: add extra tests
* fix: use browser router in http mode
* fix: update links to not use hash router
* fix: add redirect from hash router url
* fix: return nostrWalletConnectUrl in nwc connection success event and message
* feat: publish nwa event
* chore: use nwc info event instead of nwa event
* feat: create custom alby go detail page
* chore: allow creating/editing apps with the same name
* fix: convert budget from msats to sats (#1111)
* chore: address NWA feedback
* chore: address feedback
- adjust button copy
- make create_connection methods consistent with http deeplink flow
- remove unused constant
- add empty string check before adding lud16 tag
- fix test
* feat: add support for notification_types in create_connection method
* fix: shorter button copy
* fix: do not include lud16 tag in published info event
* Feat: add lud16 to get_info response (#1128)
feat: add lud16 to get_info response
* chore: minor alby go screen improvements
* fix: incorrect unlock password error message to create app with superuser access
* chore: minor ui improvements on alby go detail page
* chore: avoid duplicate app names by adding a suffix
* chore: move scopes check to apps service, add new tests, DRY controller test setup
* fix: scopes component full access scopes and isolated scope group check
* fix: use supported capabilities for Alby Go
* fix: return correct app name
* chore: address minor comments
---------
Co-authored-by: im-adithya <imadithyavardhan@gmail.com>
* feat: enable Postgres connections
* feat: implement migration templates
* feat: convert sqlite-specific migrations to migration templates; adjust SQL syntax
* fix: add migration to fix postgres incompatibilities in the DB schema
* fix: correct SQL syntax for comparisons in the transactions service
* feat: database migration tool
* chore: update tests for testing with Postgres
* fix: update test
* fix: explicitly store mock timestamps in UTC
* chore: add txdb to go.mod and run tidy
* fix: serialize concurrent transactions when running tests with txdb
* chore: update README to mention postgres
* fix: use timestamptz in Postgres
* test: add Github action for testing the backend with Postgres
* chore: fix migration name and add comments
* docs: add db migration notes to README
* fix: address PR feedback
* fix: rename the cmd/migrate tool to cmd/db_migrate
* feat: add schema check in the DB migration tool
* test: use testdb instead of txdb for testing with Postgresql
* fix: fix tests after merge
* chore: comment out unused VACUUM in migrations
* fix: reset Postgres sequences after migrating data
* docs: update migrate command in readme
* fix: do not allow backup for migration when postgres is enabled
* chore: add debug logs for db backend type
* chore: use Logrus instead of slog for db_migrate
* fix: initialize logger in the keys tests
* test: add db_migrate test
* fix: use transaction object in db_migrate function
* fix: txlock in db migration test
---------
Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
* feat: add transactions table
* feat: add transactions service with makeinvoice method
* feat: use internal transactions WIP
* feat: check unsettled transactions
* feat: use transactions service in nip47 package WIP
* feat: use transactions service in NIP-47 handlers
* fix: transaction list colors
* fix: tests
* chore: remove old payments table
* fix: return budget usage as sats
* feat: use internal transactions table for keysend payments
* feat: consume nwc_payment_received event in transaction service (WIP)
* feat: update existing transaction from nwc_payment_received event in transactions service
* feat: update existing transaction from nwc_payment_sent event in transactions service
* feat: handle async payment failed events in transactions service
* fix: tests
* feat: correctly implement NIP-47 NOT_FOUND error code
* feat: intercept self payments
* feat: isolated balance and visibility
* feat: validate keysend payment does not exceed app internal balance
* feat: budget check in transactions service, correctly pass payment errors to NIP-47 response
also reduce query duplication
* fix: order transactions when looking up transaction
* feat: add fee reserves to unsettled outgoing transactions
* chore: rename app permissions max amount field
* chore: rename transaction amount values to be clearly millisats
* chore: merge balance type and visibility into isolated property on apps table
* chore: move duplicated permission check from nip-47 controllers to handler
* fix: app name in transaction list
* Feat: permissions revamp v2 (#273)
* feat: revamp permissions component
* chore: changes
* chore: changes
* chore: add view mode for show app screen
* chore: further changes
* feat: new illustration for linking account (#254)
* feat: new illustration for linking account
* fix: update paths
* fix: icon props (#256)
* fix: use date from frontend
* chore: add expiryselect component
* chore: further changes
* chore: further changes
* chore: add date-fns for date picker
* chore: further changes
* chore: further changes
* fix: add central LDK gossip node to help gossip new public channels (#262)
* fix: make dialog responsive (#258)
* chore: further changes
* typo
* chore: spacing issues
* chore: use scopes from capabilities
* chore: change scope type descriptions
* chore: styling fixes
* chore: fix typings
* chore: budget renewal component
* fix: LDK mark channel as inactive and show error if counterparty forwarding info missing (#267)
fix: mark channel as inactive and show error if counterparty forwarding info missing
* chore: remove unnecessary dark classes (#255)
* fix: links to open first channel in sidebar and onboarding checklist (#268)
* feat: improve migrate node UI (#269)
* fix: migrate node copy (#270)
* fix: stop nostr when app is shutdown and use context to stop lnclient (#271)
* fix: permissions revamp WIP
* feat: basic isolated apps UI
* fix: new app connection, edit app connection, deep linking
---------
Co-authored-by: im-adithya <imadithyavardhan@gmail.com>
Co-authored-by: René Aaron <100827540+reneaaron@users.noreply.github.com>
Co-authored-by: Michael Bumann <hello@michaelbumann.com>
* fix: make transactions table ID autoincrement
* fix: do not send unrelated notifications to isolated apps
* fix: nip-47 notifications not receiving updated transaction state
* fix: migrate existing tables to have autoincrementing primary keys (#274)
* fix: migrate existing tables to have autoincrementing primary keys
* fix: recreate request and response event tables after apps
* fix: remove null from request_events app_id
* fix: do not crash when reloading app created page
* chore: update pragma commands, add busy_timeout
* fix: remove unnecessary migration of user_configs table
* chore: update comment on autoincrement migration
* feat: sqlite database config improvements
* fix: autoincrement migration to delete unlinked app permissions
* chore: update tests for dynamic budgets (WIP)
* fix: get balance tests
* chore: add extra event handler tests
* chore: add extra event handler test
* chore: add extra multi_pay_invoice tests
* chore: transactions service tests (WIP)
* chore: add transactions service payment tests
* chore: add tests for self payments
* fix: notifications tests
* chore: add notifications tests for transactions service
* chore: add fee reserve tests for transactions service
* chore: add list transactions tests
* chore: add keysend tests for transactions service
* feat: subscribe for payments and invoices (#281)
* fix: db transaction should be passed as pointer
* feat(lnd): subscribe for payments and invoices
* chore: rearrange check for settled
* chore: remove TODO
* chore: retry on error and add select
* chore: publish payment failed event
* chore: use json logging
* feat: add lnd notification types
* chore: remove sleep
* fix: incorrect key on transaction list items
* fix: test
* fix: disable isolated app type on non-supported backends
---------
Co-authored-by: im-adithya <imadithyavardhan@gmail.com>
Co-authored-by: René Aaron <100827540+reneaaron@users.noreply.github.com>
Co-authored-by: Michael Bumann <hello@michaelbumann.com>