Commit graph

73 commits

Author SHA1 Message Date
Adithya Vardhan
9b6e88f1cc
feat: add option to edit fee while withdrawing (#1044)
* feat: add option to edit fee while withdrawing

* chore: add alert if fee rate exceeds fastest fee

* fix: tests

* feat: add support for LDK

* chore: do not accept decimal fee rates in frontend

* chore: minor withdraw UI improvements

* chore: make fee rate optional and update mockery

* chore: remove unnecessary else

* chore: do not format lottie files

* feat: add lotties files to prettier ignore

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2025-05-29 23:38:46 +07:00
Adithya Vardhan
9bc35aba00
chore: add metadata to payments done via Send screen (#1322)
* chore: add metadata to payments done via Send screen

* chore: use identifier from metadata

* chore: show identifier in tx list title

* chore: include more details from metadata

* chore: copy changes

* chore: add comment to metadata

* chore: type metadata before passing

* chore: revert metadata comment change
2025-05-28 13:05:05 +07:00
Adithya Vardhan
f41f96335e
feat: auto-swaps (#1266)
Also fixes #1303

## TODOs

- [x] Do final testing with LDK/LND on mainnet
- [x] Improve fee display on the frontend, currently looks scary
- [x] ~Shift Swaps from settings~ (Agreeed to do in follow-up)
- [x] ~Add option to do one-time swaps~ (Agreeed to do in follow-up)

### Minor
- [x] `LDK_NETWORK` config var should now be `NETWORK`
- [x] ~Use LNClient method to publish transactions~ (Agreeed to do in
follow-up)

### Testing
- [ ] Phoenix
- [ ] Cashu
- [x] Wails
2025-05-14 21:31:50 +05:30
Adithya Vardhan
f4bfa42b55
feat: add info page to settings (#1310)
* feat: add info page to settings

* chore: add plan info

* chore: reorder info page in settings sidebar

* fix: move about to bottom of menu items

* chore: replace hardcoded plan codes

---------

Co-authored-by: René Aaron <rene@twentyuno.net>
2025-05-14 16:14:39 +02:00
im-adithya
6caa2aa7d0 Merge branch 'master' into feat/auto-swaps 2025-05-06 12:48:26 +05:30
Roland Bewick
153da0ee12 feat: add on-chain transactions to node page 2025-05-02 13:51:37 +07:00
im-adithya
433a4cfef8 chore: add fees 2025-04-30 19:25:07 +05:30
im-adithya
9fb144d7d4 chore: remove max fee percentage setting and display fee 2025-04-29 13:32:17 +05:30
im-adithya
d8d0c92413 chore: add max fee percentage 2025-04-28 14:20:10 +05:30
im-adithya
3dd9f1eab9 chore: do not pass ctx to get auto swaps config 2025-04-23 17:43:59 +05:30
im-adithya
0f71ab34b5 chore: rename to get auto swaps config 2025-04-23 16:57:13 +05:30
im-adithya
a54b804636 chore: rename to disable auto swaps 2025-04-23 16:36:37 +05:30
im-adithya
777d987410 chore: further changes 2025-04-18 16:01:38 +05:30
René Aaron
490c0e07b4 fix: add swap amount 2025-04-17 13:15:26 +02:00
René Aaron
277fcf68a3 fix: save settings 2025-04-17 11:10:17 +02:00
im-adithya
940ad3b5c9 feat: add backend for auto swaps 2025-04-16 20:58:32 +05:30
Roland
6f662623b9
fix: show health alert if vss is enabled but subscription was cancelled, save vss token to user config (#1228)
* fix: show health alert if vss is enabled but subscription was cancelled

* fix: better handling if alby api is inaccessible to allow basic functionality (#1229)

* fix: better handling if alby api is inaccessible to allow basic functionality

* fix: don't show formatted fiat amounts if failed to fetch rates
2025-03-31 21:55:33 +07:00
Roland Bewick
e107e05d80 chore: remove unused green and breezlight backends 2025-03-15 13:11:36 +07:00
Roland
cd9cd6fd9a
chore: show wallet pubkey on connection page (#1146) 2025-03-04 19:08:08 +07:00
Roland
3e1d16d423
Feat: NWA auth for self-hosted hubs (#1016)
* 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>
2025-02-27 19:12:55 +07:00
im-adithya
d8da67e30a chore: change total count to uint64 2025-02-21 17:54:14 +05:30
im-adithya
f456a894ab chore: use updated at in tx list 2025-02-18 22:53:50 +05:30
im-adithya
aae7f544a1 Merge branch 'master' into task-pagination 2025-02-18 22:33:33 +05:30
Roland
cc24257c41
feat: replace start timeout with hub startup state (#1090)
* feat: replace start timeout with hub startup state

* fix: update mocks

* fix: make start page copy consistent
2025-02-14 16:03:50 +07:00
Roland
99d8c8fb5a
fix: also include lud16 in nwc success event (#1057) 2025-02-06 12:30:28 +07:00
Pavan Joshi
5140cfb02e
feat: currency switcher (#1050)
* feat: language switcher

* feat: add fiat amount to send and receive instances

* feat: add wails handler to set currency

* chore: improve fiat currency handling

- simplify code
- change api endpoint to update settings rather than just currency
- add missing fiat value on receive invoice page
- allow passing classname to formatted fiat component

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2025-01-31 18:46:50 +07:00
Roland
34a5bc882f
fix: new connection deeplink flow (#1009)
* 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

* fix: include relay url and wallet pubkey in app created messages instead of full NWC url

* chore: remove broken check
2025-01-31 12:08:18 +07:00
Roman D
d799bdff76
feat: proposal: custom node commands (#1007)
* feat: custom node command execution models and methods

* feat: implement custom node command handlers for HTTP server and Wails

* chore: expose GetNodeCommands API methods in HTTP and Wails

* chore: add sample custom node command implementation for Cashu restore

* feat: add frontend for custom node commands

* chore: consistent naming of custom node command entities

* chore: consistent naming of custom node command entities

* chore: return interface{} as custom node command execution result

* test: add tests for ParseCommandLine

* chore: add extra ParseCommandLine tests for json

* test: add API tests and mocks

* fix: stabilize order of arguments when invoking custom node commands

* test: add test for unsupported custom node command argument

* chore: add the mockery configuration file and move mocks to tests/mocks

* docs: document mockery usage

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2025-01-30 18:20:17 +07:00
Roman D
ff9ef56f43
feat: health check endpoint (#971)
* chore: move Nostr relay readiness methods to service.go

* feat: basic health checks implemented

* chore: rename alby info variable

* feat: add basic health check ui, remove unnecessary alarms

* fix: health indicator layout on mobile

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2025-01-17 15:29:20 +07:00
Roland
ac226fbe2f
feat: show failure reason on transaction modal in transaction list (#991) 2025-01-17 13:21:50 +07:00
Roland
f0e749f51d
feat: auto unlock (#949)
* feat: auto unlock feature

* chore: write auto unlock password from env to user config

* chore: simplify alert
2025-01-07 20:08:10 +07:00
Roland
dcfd016455
feat: include funding transaction in pending closing channel message (#941)
also includes vout in funding tx links
2025-01-06 23:33:13 +07:00
Roland
188e7c6fa6
fix: fee limits for LND and LDK, isolated balance calculation (#937) 2025-01-06 23:08:09 +07:00
Roland
e98f2074a7
fix: only show vss info in alby account settings if vss is supported (#900) 2024-12-17 13:53:58 +07:00
Roland
044e0c3ad1
feat: pay 0-amount invoices (#860)
* feat: pay 0-amount invoices

* chore: update lightning-tools dependency

* feat: pay 0 amount invoices in LND

* chore: typo

* fix: lightning-tools dependency version

---------

Co-authored-by: im-adithya <imadithyavardhan@gmail.com>
2024-12-17 11:58:43 +07:00
im-adithya
22e1c26ee5 feat: add pagination to tx list 2024-12-16 18:56:59 +05:30
Roland
d51db84a79
feat: migrate to VSS (#865)
* feat: migrate to VSS (WIP)

* feat: add ui and api endpoint to migrate ldk storage to vss

* chore: update copy of enable vss dialog

* chore: bump ldk-node-go version

* chore: minor spacing in dialog

* chore: error handling
2024-12-16 12:32:35 +07:00
Roland
9ccb9ec060
feat: show VSS state in settings (#830)
* feat: show VSS state in settings

also adds some missing settings headers

* chore: move VSS info to Alby Account settings

* fix: change alby account link to alby hub alby account settings page
2024-11-29 15:16:20 -06:00
Roland
8addcd4025
feat: show filtered transaction list on app connection page (#809)
* feat: show filtered transaction list on app connection page

* fix: tests
2024-11-27 14:58:00 -06:00
Roland
aa1eeec9af
feat: improve isolated app support (#786)
* feat: add isolated checkbox to create new custom app

* feat: improved isolated app editing

- toggle app between isolated and non isolated
- confirmation for changing isolated app to not isolated
- edit scopes for isolated apps
- move isolated app support check to backend

* chore: improve confirm app dialog copy
2024-11-26 20:30:53 -06:00
frnandu
5fdc803f7a
feat: app child key derived from wallet master key (#736)
* feat(appwalletKey): add GetBIP32ChildKey

* feat: fix interface

* feat: adding subscription WiP

* feat: handle nostr subscriptions for lifecycle of apps

* Delete .idea/.gitignore

* Delete .idea/hub.iml

* Delete .idea/modules.xml

* Delete .idea/vcs.xml

* fix: remove unnecessary

* fix: missing handling legacy app

* fix: review fixes

* fix: use app.ID for key calculation instead of passing in event

* fix: add TODO

* fix: remove unnecessary check

* fix: improve err handling and remove check

* chore: store master nostr key to avoid deriving each time

* chore: rename app nostr_pubkey to app_pubkey, extract app consumers into separate files

* chore: finish renaming

* fix: update app wallet pubkey on app creation

* fix: not NULL check

* fix: fix HandleEvent

* fix: error handling

* fix: error handling

* fix: move StartSubscription to start.go

* fix: remove duplicated error check

* fix: make tests use AppsService for creating apps

* chore: remove unused code

* chore: minor event handler improvements

- fix error code response when failing to update request event
- fix log content when failing to decrypt request event
- move logging of app to correct place

* fix: add event_handler tests for legacy app

* chore: add comment about legacy apps in deleteAppConsumer

* fix: remove unused app from tests

* fix: error handling in startAppWalletSubscription

* fix: only create event info and nostr subscription for master key if there are legacy apps

* fix: add legacy tests

* fix: move fetching of Nip47 event info to deleteAppConsumer

* fix: fixed arguments

* fix: use require instead of assert

* fix: adapt GetAppWalletKey to use DeriveKey with path 1'

* fix: for backends that don't use a mnemonic, create appKey from nostrSecretKey

* fix: cleanup eventPublisher Subscribers when relay reconnects

* fix: bip32.FirstHardenedChild + appID

* fix: remove unused env vars

* fix: generate new mnemonic if empty

* fix: add tests.CreateTestServiceWithMnemonic to fix TestEncryptedBackup

* fix: handle both relay and main ctx Done

* chore: add keys tests

* chore: add extra assertions to keys test

* chore: log when legacy app subscription is created

* chore: remove unnecessary break

* chore: add log when relay is successfully connected

* fix: only auto-start node if it has been started before

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2024-11-07 19:06:01 +07:00
Roland
731d248129
feat: increase isolated app balance (#710) 2024-10-28 13:29:34 +07:00
Roland
e6f1d5b0e9
feat: show pending and failed outgoing transactions (#682)
* feat: show pending and failed outgoing transactions

* fix: use gray color for pending outgoing transactions

* fix: list transactions query and date display of unsettled transactions

* feat: add env variable to log db queries

* chore: add extra list transactions filter tests
2024-09-20 23:48:33 +07:00
Adithya Vardhan
da27ed250e
feat: show startup error (#571)
* feat: show startup error

* chore: move startup error var to api

* chore: simplify start error display

* fix: startup error on setup page

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2024-09-04 12:16:12 +07:00
Roland
ae430991c7
feat: withdraw custom amount from savings (#597)
* feat: withdraw custom amount from savings

* feat: simplify withdraw onchain funds ui
2024-09-04 11:44:58 +07:00
Roland
3266e649bd
feat: add buzzpay internal app (#580)
* feat: add uncle jim internal app

* fix: wrong number in instructions

* chore: simplify alby jim internal app copy

* Feat: app metadata (#570)

* chore: wg.Add() before go (#559)

* chore: code cleanup (#558)

* Update README.md

Add command to make the install script executable in the instructions.

* feat: add migration card in wallet screen (#555)

* feat: add migration card in wallet screen

* chore: transfer funds if channel exists

* chore: typo

* chore: improve copy

* chore: add transfer funds button

* fix: remove duplicate icon

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>

* chore: run extra workflows on PR (#563)

* chore: run extra workflows on PR

* fix: pull request workflows

* build(deps): bump github.com/nbd-wtf/go-nostr from 0.34.5 to 0.34.10 (#551)

Bumps [github.com/nbd-wtf/go-nostr](https://github.com/nbd-wtf/go-nostr) from 0.34.5 to 0.34.10.
- [Commits](https://github.com/nbd-wtf/go-nostr/compare/v0.34.5...v0.34.10)

---
updated-dependencies:
- dependency-name: github.com/nbd-wtf/go-nostr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.66.0 to 1.67.0 (#552)

Bumps gopkg.in/DataDog/dd-trace-go.v1 from 1.66.0 to 1.67.0.

---
updated-dependencies:
- dependency-name: gopkg.in/DataDog/dd-trace-go.v1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: do not render 0 on withdraw onchain funds page when reserve balance is 0 (#549)

* chore: update fly default kill timeout to ensure app gracefully shuts down (#547)

* feat: app metadata

* fix(wails): parse max length in log output endpoint (#568)

* fix: alby account image and name on transaction list

* fix: vertically center transaction item content

* fix: use slashed zero on wallet balance

* chore: align app image with app name in transaction list

* fix: ensure auth with correct user if refresh token expires (#572)

* fix: do not allow editing name of Alby Account connection

* fix: change "Create Wallet" to "Create Subaccount"

* fix: subaccount copy

* chore: update friends and family app icon

* fix: update app store images (#574)

* fix: update app store images

* chore: update paper scissors hodl and zapplanner icons

* chore: update lume and habla news icons

* chore: resize and compress zapplanner and rps logos

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>

* feat: add new auto channel flow that works with existing channels (#556)

* feat: add new auto channel flow that works with existing channels

* chore: remove "first" from auto channel copy

* feat: new transaction list item design

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Matjaž Lipuš <matjazl@gmail.com>
Co-authored-by: BtcPins <pardus79@gmail.com>
Co-authored-by: Michael Bumann <hello@michaelbumann.com>
Co-authored-by: Adithya Vardhan <imadithyavardhan@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add buzzpay internal app

* chore: remove connection secret from metadata

* fix: make buzzpay isolated

* chore: update buzzpay app UI and instructions

* chore: extract app creation into shared method

* fix: isolated app permission display

* chore: update copy

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Matjaž Lipuš <matjazl@gmail.com>
Co-authored-by: BtcPins <pardus79@gmail.com>
Co-authored-by: Michael Bumann <hello@michaelbumann.com>
Co-authored-by: Adithya Vardhan <imadithyavardhan@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-03 21:31:28 +07:00
Roland
d257437919
feat: add uncle jim internal app (#557)
* feat: add uncle jim internal app

* fix: wrong number in instructions

* chore: simplify alby jim internal app copy

* Feat: app metadata (#570)

* chore: wg.Add() before go (#559)

* chore: code cleanup (#558)

* Update README.md

Add command to make the install script executable in the instructions.

* feat: add migration card in wallet screen (#555)

* feat: add migration card in wallet screen

* chore: transfer funds if channel exists

* chore: typo

* chore: improve copy

* chore: add transfer funds button

* fix: remove duplicate icon

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>

* chore: run extra workflows on PR (#563)

* chore: run extra workflows on PR

* fix: pull request workflows

* build(deps): bump github.com/nbd-wtf/go-nostr from 0.34.5 to 0.34.10 (#551)

Bumps [github.com/nbd-wtf/go-nostr](https://github.com/nbd-wtf/go-nostr) from 0.34.5 to 0.34.10.
- [Commits](https://github.com/nbd-wtf/go-nostr/compare/v0.34.5...v0.34.10)

---
updated-dependencies:
- dependency-name: github.com/nbd-wtf/go-nostr
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.66.0 to 1.67.0 (#552)

Bumps gopkg.in/DataDog/dd-trace-go.v1 from 1.66.0 to 1.67.0.

---
updated-dependencies:
- dependency-name: gopkg.in/DataDog/dd-trace-go.v1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: do not render 0 on withdraw onchain funds page when reserve balance is 0 (#549)

* chore: update fly default kill timeout to ensure app gracefully shuts down (#547)

* feat: app metadata

* fix(wails): parse max length in log output endpoint (#568)

* fix: alby account image and name on transaction list

* fix: vertically center transaction item content

* fix: use slashed zero on wallet balance

* chore: align app image with app name in transaction list

* fix: ensure auth with correct user if refresh token expires (#572)

* fix: do not allow editing name of Alby Account connection

* fix: change "Create Wallet" to "Create Subaccount"

* fix: subaccount copy

* chore: update friends and family app icon

* fix: update app store images (#574)

* fix: update app store images

* chore: update paper scissors hodl and zapplanner icons

* chore: update lume and habla news icons

* chore: resize and compress zapplanner and rps logos

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>

* feat: add new auto channel flow that works with existing channels (#556)

* feat: add new auto channel flow that works with existing channels

* chore: remove "first" from auto channel copy

* feat: new transaction list item design

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Matjaž Lipuš <matjazl@gmail.com>
Co-authored-by: BtcPins <pardus79@gmail.com>
Co-authored-by: Michael Bumann <hello@michaelbumann.com>
Co-authored-by: Adithya Vardhan <imadithyavardhan@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: copy

* fix: less detailed icon for uncle jim app

* fix: shorten app description

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Matjaž Lipuš <matjazl@gmail.com>
Co-authored-by: BtcPins <pardus79@gmail.com>
Co-authored-by: Michael Bumann <hello@michaelbumann.com>
Co-authored-by: Adithya Vardhan <imadithyavardhan@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René Aaron <rene@twentyuno.net>
Co-authored-by: René Aaron <100827540+reneaaron@users.noreply.github.com>
2024-09-02 17:40:34 +07:00
Adithya Vardhan
6a782027c1
chore: add app id to CreateAppRepsonse (#524)
chore: add app id to createappresponse
2024-08-23 15:45:15 +07:00
Adithya Vardhan
2cdc20b6e0
feat: edit name in show app screen (#503)
* feat: edit name in show app screen

* chore: change var name and prevent apps with same name

* chore: minor fixes

* chore: minor fix
2024-08-23 01:15:48 +07:00
Adithya Vardhan
b112484990
chore: add other lnd methods (#490)
* chore: add other lnd methods

* feat(lnd): add sendcoins and debuginfo

* chore: always return pubkey in GetNodeConnectionInfo
2024-08-22 19:59:51 +07:00