Commit graph

227 commits

Author SHA1 Message Date
Roland
be17bc4e26
chore: replace alby mutinynet lsps2 with megalith mutinynet lsp (#2469)
Some checks are pending
Multiplatform Docker build & push / build (push) Waiting to run
Code quality - linting and typechecking / linting (push) Waiting to run
Backend testing with Postgres / test-postgres (push) Waiting to run
2026-07-27 19:54:37 +07:00
dependabot[bot]
005ee814a8
build(deps): bump github.com/lightningnetwork/lnd from 0.20.1-beta to 0.21.0-beta (#2402)
* build(deps): bump github.com/lightningnetwork/lnd

Bumps [github.com/lightningnetwork/lnd](https://github.com/lightningnetwork/lnd) from 0.20.1-beta to 0.21.0-beta.rc3.
- [Release notes](https://github.com/lightningnetwork/lnd/releases)
- [Changelog](https://github.com/lightningnetwork/lnd/blob/master/docs/release_branch_management.md)
- [Commits](https://github.com/lightningnetwork/lnd/compare/v0.20.1-beta...v0.21.0-beta.rc3)

---
updated-dependencies:
- dependency-name: github.com/lightningnetwork/lnd
  dependency-version: 0.21.0-beta.rc3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: remove unused LND wrapper interface and methods

* chore: bump LND to v0.21.0-beta

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adithya Vardhan <imadithyavardhan@gmail.com>
2026-07-27 19:48:54 +07:00
Alchemist
222031a97e
fix: soften channel routing warning (#2458)
Some checks failed
Multiplatform Docker build & push / build (push) Has been cancelled
Code quality - linting and typechecking / linting (push) Has been cancelled
Backend testing with Postgres / test-postgres (push) Has been cancelled
* fix: soften channel routing warning

* Update lnclient/ldk/ldk.go

Co-authored-by: Roland <33993199+rolznz@users.noreply.github.com>

---------

Co-authored-by: Roland <33993199+rolznz@users.noreply.github.com>
2026-06-19 15:48:18 +07:00
Roland
d7ebee5058
chore: add bhodl lsp as trusted 0 conf peer (#2439) 2026-06-11 14:48:26 +07:00
frnandu
b55978d7bc
feat: just in time channels with lsps2 (#2275)
* feat: just in time channels with lsps2

* fix: clarify JIT receive channel fee

* fix: fees

* fix: fees 2

* fix: don't show low inbound when LSPS2 is active

* fix: remove the receive limit below the input if LSPS2 is being used

* fix: simplify

* fix: bring back fee % for outgoing

* fix: remove unneeded changes

* fix: typo

* fix: unneeded

* fix: don't show open first channel is LSPS2

* feat: clearer JIT channel fee copy on receive screen

* fix: add LSPS2 var info

* fix: don't duplicate JIT fee hint on create invoice form

* fix: make paymentDone a standard boolean

* fix: update to golang:1.26 in Dockerfile

* feat: read LSPS2 sources from channel suggestions, set minimum receive amount, update guide link

* docs:  update LDK_LSPS2_ADDRESSES to be used as an override

* fix: only show minimum jit receive amount on validation error

* fix: add more detail to receive error when receiving low amounts with jit

* fix: do not use JIT when user has public channels

* feat: add option to disable JIT

* fix: isTrusted check, add jit property to event

* fix: do not require node restart for toggling JIT

* chore: simplify JIT alert

* chore: add guide link on node settings JIT description

* feat: fetch the lsp2info to have access to params like minimum/maximum payment size

* refactor: share single learn-more link across JIT fee hint branches

* fix: remove variable amount invoice support

* fix: use lsps2info for min payment size and remove channelPeerSuggestion usage of minimumChannelSize

* fix: only do amount validation according to lsps2Info values if jit is enabled in settings

* feat: add jit first payment fee alert on receive via lightning address

* fix: remove unnecessary conditional

* fix: ensure at least one sat is left over when opening JIT channel

* chore: remove hardcoded suggestions

* chore: rename JIT enabled config variable

* fix: ui checks when JIT is disabled

* fix: amount input validation message

* fix: formatting

---------

Co-authored-by: anon <anon@anon.com>
Co-authored-by: saunter <68239231+stackingsaunter@users.noreply.github.com>
Co-authored-by: fmar <fmar@fmar>
Co-authored-by: René Aaron <rene@twentyuno.net>
Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2026-06-10 14:47:07 +07:00
Roland
91c634c85f
fix: show confirmation progress when opening public channel from LSP (#2419)
* fix: show confirmation progress when opening public channel from LSP

Public channels require 6 confirmations before they can be gossiped and
become usable (BOLT-7), but LDK accepts channels from trusted LSP peers
as 0-conf and reports ConfirmationsRequired as nil/0. As a result the
channel-opening screen rendered an indefinite blank loading spinner
instead of confirmation progress.

Override ConfirmationsRequired to 6 for announced channels so the UI
shows the "X/6 confirmations" progress card while the channel opens.

Fixes #2294

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: remove unnecessary link in comment

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 15:31:48 +07:00
daywalker90
6a15ebadad
feat: generate CLN invoice preimage ourselves to support sub-wallets (#2412)
Some checks are pending
Multiplatform Docker build & push / build (push) Waiting to run
Code quality - linting and typechecking / linting (push) Waiting to run
Backend testing with Postgres / test-postgres (push) Waiting to run
2026-06-08 21:20:51 +07:00
Roland Bewick
5c23375c08 feat: add bark logger
Some checks failed
Multiplatform Docker build & push / build (push) Has been cancelled
Code quality - linting and typechecking / linting (push) Has been cancelled
Backend testing with Postgres / test-postgres (push) Has been cancelled
2026-06-05 16:40:43 +07:00
hermes-alby
a4dec48322
fix: update Bark FFI bindings (#2400)
fix: update bark ffi bindings

Co-authored-by: Hermes Agent <hermes-agent@users.noreply.github.com>
2026-06-05 13:01:04 +07:00
Roland
df67a2c24e
fix: link Windows CNG libs for bark FFI (#2397)
* fix: link Windows CNG libs for bark FFI

The bark FFI static library is built for the GNU/mingw target and embeds
Rust's getrandom/ring code, which references Windows CNG symbols such as
BCryptGenRandom. The upstream bark bindings only link -lbark_ffi_go, so the
mingw linker fails with "undefined reference to BCryptGenRandom".

cgo merges LDFLAGS across packages, so supply the missing Windows system
libraries from our own bark package without modifying the vendored module.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: move cgo directive out of Go doc comment for bark windows

The descriptive comment block was contiguous with the import "C" line, so
the entire block became the cgo C preamble and the C compiler tried to parse
the prose (unknown type name 'The', stray quotes/backticks). Separate the Go
documentation from the cgo preamble with a blank line and keep only the #cgo
directive in a /* */ block immediately preceding import "C".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: link Windows CNG libs for bark via extldflags

cgo #cgo LDFLAGS directives from our package are ordered before the bark
module on the link line, so the single-pass mingw linker discards -lbcrypt
before it sees the undefined BCryptGenRandom reference from libbark_ffi_go.a.

Append the Windows system libraries via -extldflags instead, which places
them after -lbark_ffi_go so the linker can resolve the symbols.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: link bark Windows CNG libs via CGO_LDFLAGS start-group

wails drops -ldflags=-extldflags, so the system libraries never reached the
external linker. Set them through CGO_LDFLAGS instead (read directly by cgo)
and wrap them with bark in a --start-group, so the linker re-scans the group
and resolves BCryptGenRandom regardless of library order.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: gate bark backend to platforms with prebuilt FFI libs

The bark FFI bindings ship no native library for 32-bit ARM Linux, so the
armv6 build failed to link bark's own FFI symbols. Constrain the real bark
implementation to bark's supported platforms (darwin/linux amd64+arm64,
windows amd64) and add a stub for everything else that returns an
"unsupported" error if the bark backend is selected at runtime.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 17:20:04 +07:00
Roland
84e56a23db
feat: bark backend (#2374)
* feat: bark backend

* fix: use real preimage

* fix: balance shows as 0 on startup after hours offline period

* chore: add bark-specific warnings to setup security page

* chore: update setup security page

* chore: use notifications instead of polling

* feat: bark sub-wallet support

* fix: tests

* feat: add env variables for mainnet support

* chore: add custom node commands for debugging, log next notification

* fix: notification handling

* fix: fees for outgoing payments, pending payment handling, decrease required tx confirmations

* chore: bump bark version

* chore: use better bark image

* fix: back button logic and imported mnemonic state in onboarding flow

* chore: update bark copy on security page

* chore: improve copy for first transaction checklist item

* fix: backup copy based on backend

* fix: remove unused/unnecessary code
2026-06-04 11:57:29 +07:00
Roland
e3373474f8
chore: remove json tags from lnclient models (#2375)
* chore: remove json tags from lnclient models

these should not be passed through the API directly

* fix: properly return not implemented errors

* fix: json tags on TLVRecord
2026-05-25 20:26:07 +05:30
daywalker90
12a3b114ff
CLN balance offer fix and makeoffer fix (#2373)
* fix: don't use deprecated balance fields for CLN

* fix: add missing amount for makeoffer for CLN
2026-05-23 13:55:44 +07:00
daywalker90
12c454f3ae
feat: add notifications for CLN backend (#2287)
* fix: protoc command for cln bindings documentation

* feat: update cln proto bindings to v26.04

* feat: add notifications for CLN backend

starting with nwc_lnclient_payment_sent, nwc_lnclient_payment_failed,
nwc_lnclient_payment_received, nwc_payment_forwarded, nwc_channel_ready,
nwc_channel_closed
2026-05-06 13:11:03 +07:00
daywalker90
28706ecf31
feat: add CLN backend (#2026)
* feat: add CLN as a lnclient backend

* feat: add hold invoice support for CLN backend

* fix: reduce CLN form to just addresses and lightning dir

* feat: add README for CLN grpc go code generation

* fix: cln backend does not support keysend with given preimages

* fix: hold invoice notifications in CLN backend

* fix: remove dead code in CLN backend from ListTransactions

* fix: env example CLN_ADDRESS_HOLD with different port to show it's a different service

* fix: cleanup of CLN ressources in all cases

* fix: cln backend's GetNetworkGraph only fetches specified nodeId's

* fix: cln backend: only advertise hold methods for nip47 if hold plugin enabled

* fix: cln's Shutdown should not stop CLN itself

* fix: relax the LND README line regarding env configuration

* fix: more nil checks in clnInvoiceToTransaction

* fix: prevent feerate overflow in CLN's RedeemOnchainFunds

* fix: don't access nil errors for empty reponses of certain CLN methods

* fix: nil instead of empty string in cln's GetNetworkGraph return types

* fix: nil checks for created_at in cln's clnInvoiceToTransaction

* fix: set minimum tls version to 1.2 for cln backend grpc connections

* fix: cln's subscribeOpenHoldInvoices doesn't give up as fast

* fix: deduplicate graph edges in cln's GetNetworkGraph

* fix: print the error string, not pointer address, in cln's ListChannels

* fix: remove cln's ListTransactions completely

* fix: use ListPeers instead of ListPeerChannels in cln's ListPeers

* feat: cln's MakeHoldInvoice supports minCltvExpiryDelta

* fix: use named return err in NewCLNService

* fix: cln listpeers log message

* fix: incorrect import

* fix: compile errors after rename

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2026-05-03 12:36:13 -07:00
Adithya Vardhan
0c421375e5
chore: update to use sat/msat suffixes everywhere (#2271)
* chore: align internal models and methods to use sat/msat suffixes

* chore: update request structs to use sat/msat suffixes

* fix: default max amount to 0 during app creation

* fix: simplify helper functions

* chore: remove unused lnclient probing methods

* chore: remove unused json tags on swap struct

* chore: update frontend to use sat/msat suffixes everywhere

* chore: use request types in frontend

* fix: linting

* fix: remove deprecated sat and msat fields in frontend

* chore: further changes

* fix: avoid sat/msat resolver variable shadowing

* fix: validate Support Alby amounts
2026-05-01 15:41:56 +05:30
Anshuman
1d3f9ecd41
feat: suffix balance/amount fields with explicit unit (Sat or Msat) (#2153)
* feat: add both Sat and Msat companion fields for all ambiguous balance/amount properties

* feat: add sat and msat companion fields to backend API responses

* chore: align frontend types and other missing fields

* chore: keep old formula for calculating total fee sat

* chore: remove unnecessary balance assignments in cashu and phoenix

* chore: add deprecated comment to non unit fields

* chore: rename callers and variable to specify units

* chore: remove msat fields for channel size and liquidity fields

* chore: drop msat fields from onchain channel size and liquidity responses

* chore: further changes

* chore: remove amount msat field onchain tx

* chore: remove msats from onchain balance response

* chore: remove msat fields for swaps

* chore: remove msat fields for punishment reserves

* chore: simplify rebalancing fee calculation

* chore: remove unnecessary fields

* chore: mark deprecated fields in frontend types

---------

Co-authored-by: im-adithya <imadithyavardhan@gmail.com>
2026-04-17 13:53:28 +05:30
Dunsin
e157c288b3
feat: add chain data source and address to about page (#2013)
* feat: add chain data source and address to about page

* fix: only show chainsource for ldk

* fix: redact chain-source address secrets and return complete bitcoind endpoint

* chore: make sanitize function readable and add tests

* fix: align ldk chain data source labels

---------

Co-authored-by: anon <anon@anon.com>
Co-authored-by: im-adithya <imadithyavardhan@gmail.com>
2026-04-07 03:25:13 +05:30
frnandu
da5b68da84
feat: add minCltvExpiryDelta for LDK (#2181)
fixes #2065

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Improvements**
* Hold invoices now support an optional minimum CLTV expiry delta with
validation to ensure values stay within protocol limits, allowing finer
control over confirmation timeout behavior.

* **Chores**
  * Updated a direct library dependency to a newer version.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-03 07:19:51 +00:00
Sergey B.
f2ea668df8
Adding checks for ok status code in responses (#2178)
* fix: checks for ok status code in responses

* refactor: replacing native fetch with useSWR

* chore: remove url from logs

* chore: add phoenixd error logs for non-success responses

* chore: add use currencies hook

* chore: use loading from currencies hook and filter out btc

---------

Co-authored-by: im-adithya <imadithyavardhan@gmail.com>
2026-03-31 23:21:26 +05:30
anon
ccc963b1bd fix: uint64(65535) 2026-03-27 14:35:18 +01:00
anon
5a40e5b1c9 fix: uint64(65535) 2026-03-27 14:34:54 +01:00
anon
77b956b510 fix: 65535 2026-03-27 13:35:01 +01:00
anon
350b72c297 feat: add minCltvExpiryDelta for LDK 2026-03-26 20:02:48 +01:00
frnandu
928246d472
feat: add minCltvExpiryDelta for LND (#2139)
* feat: add minCltvExpiryDelta for LND

* feat: improve

* feat: test LastMinCltvExpiryDelta

* feat: fixes

* feat: fixes

* chore: address minor naming issue

* chore: run mockery

---------

Co-authored-by: anon <anon@anon.com>
Co-authored-by: im-adithya <imadithyavardhan@gmail.com>
2026-03-25 23:06:57 +05:30
Roland
b49818de07
fix: intercept self hold payments based on invoice rather than payment hash (#2027)
* fix: intercept self hold payments based on invoice rather than payment hash

* fix: generate test invoices with long expiry

* fix: add timeout seconds for standard lnd payments
2026-02-27 10:22:24 +05:30
Anshuman
0a11125f0e
feat: remove default gossip peers (#2090)
feat: remove default gossip peers for LDK backend
2026-02-26 09:07:09 +05:30
klabo
801f517478
refactor: remove unused LNClient.ListTransactions method (#2046)
Transactions are listed from the database via transactionsService, not
from the LN backend. The LNClient.ListTransactions method was never
called and each backend's implementation was dead code.

Closes #2045

Co-authored-by: Joel Klabo <max@klabo.world>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 21:01:32 +05:30
Keshav
797faa70fb
fix(ui): enable keyboard submission for dialogs #760 (#2005)
* fix(ui): enable keyboard submission for dialogs #760

* fix: add global max dialog height

* fix: routing fee dialog submit

* chore: remove unused code

* chore: correct copy for exporting pathfinding scores

* fix: return correct error message when refunding swap that is not found

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2026-01-12 11:52:26 +07:00
Roland
191958570a
feat: add alert to node page when user has any large LDK channel monitors (#2007) 2026-01-07 20:24:22 +07:00
Roland
e80261a545
fix: only clear ldk VSS migration config value after successfully starting node (#2000) 2026-01-05 18:11:14 +07:00
Roland
cda0fcc493
chore: add flashsats mutinynet pubkey as trusted 0-conf peer (#1975) 2025-12-15 11:18:40 +07:00
Roland
bfa4b22511
chore: remove unused LDK backend code (#1960) 2025-12-09 12:40:25 +07:00
Roland
46a2d9e410
chore: bump LDK-Node to v0.7.0-rc1 (#1931)
* chore: bump LDK-Node to v0.7.0-rc1

* chore: bump ldk-node-go dependency to remove aws-lc-rs

* fix: default LDK listening address

* chore: retry on vss conflict

* fix: disable lazy deletes in vss store
2025-11-29 11:26:47 +07:00
frnandu
d01ced8b92
feat: decouple ldk log (#1879)
* feat: decouple ldk log

* fix: condition mapping correct levels

* fix: move LDK_LOG_LEVEL into LDK section

* fix: move ldk logger to be init in ldk service

* fix: higher is more verbose

* fix: missing 6 (trace)

* chore: address decouple ldk log feedback (#1924)

* fix: remove unneeded global variable

---------

Co-authored-by: Fmar <frnandu@gmail.com>
Co-authored-by: Roland <33993199+rolznz@users.noreply.github.com>
Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2025-11-20 11:54:36 +07:00
Roland
4b82192e04
chore: enable 0-conf for LDK flashsats channels (#1884) 2025-11-07 00:13:10 +07:00
Roland
c09f7059eb
chore: do not print error message if ldk log directory does not exist (#1859) 2025-10-24 16:41:39 +07:00
Roland
dcb3b4d453
chore: log LDK successful payment hash (#1832) 2025-10-14 13:20:34 +07:00
fmar
12e7533da9
feat: expose node URI address (#1781)
* feat: expose node URI address

* fix: remove duplicated toast

* chore: improve display of pubkey and uri on connections page advanced dropdown

* fix: use LDK_ANNOUNCEMENT_ADDRESSES instead of NODE_IPV6

---------

Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
2025-10-14 12:50:24 +07:00
Roland
a294e1b169
feat: rebalance through node pubkey (#1731)
* feat: rebalance through node pubkey (WIP)

* fix: check if remote channel policy exists
2025-09-19 12:30:51 +07:00
Roland
3787f54006
Fix: use LNClient payment context (#1728)
* fix: mark failed payment as settled

* fix: use lnclient context for paying instead of request context
2025-09-16 20:53:02 +07:00
Roland
9fb4ef56fb
chore: remove unused call to get LDK node payment on success event (#1726) 2025-09-16 16:19:41 +07:00
Roland
3a811399c7
feat: add ldk electrum chain source (#1682) 2025-09-04 11:53:22 +07:00
Adithya Vardhan
4e0b9c5b37
chore: use NewRequestWithContext instead of NewRequest (#1677) 2025-09-02 19:52:30 +07:00
Roland
13c24c7a87
feat: choose payment method when opening first channel (#1606)
* feat: choose payment method when opening first channel (WIP)

* chore: update terms

* chore: consume lsp endpoint, display fees+LSP in manual channel flow, first channel ui improvements

* chore: improve handling of fee_credits payment method

* chore: add terms and description

* feat: add terms to manual increase incoming capacity flow

* chore: add error handling for get_info endpoint

* feat: allow alby account to pay for manual channel order

* chore: use consistent logging methods

* chore: rename lsp balance sats field to be consistent

* chore: update to use consistent field name for public key in auto channel request

* chore: rename channel suggestion url and type fields

* feat: support included payment method

* chore: update LDK startup peers

* chore: move non-oauth methods out of alby oauth service

* chore: improve terms around duration, only display duration in terms modal
2025-08-27 23:34:15 +07:00
Roland
16eff34b8a
feat: track forwards to display on a home page widget (#1623)
* feat: track forwards to display on a home page widget

* fix: test

* chore: improve copy

* feat: configure PPM routing fees
2025-08-21 16:39:03 +05:30
Roland
0ac8cc5e25
fix: disconnect LDK peer on connect only if address changes (#1628)
* fix: disconnect LDK peer on connect only if address changes, reconnect peer option in peers page

* chore: minor UI improvments to LDKChannelWithoutPeerAlert

* chore: add success toast and error handling to connect peer function

* chore: remove empty line
2025-08-21 17:21:42 +07:00
Roland
c59c2ff06c
chore: add timeout for waiting for background sync to end before shutting down node (#1634) 2025-08-21 15:31:38 +07:00
Roland
1eac8138f1
feat: add environment variable to configure LDK announcement addresses (#1600) 2025-08-14 21:57:22 +07:00
Roland
46246b05d1
chore: remove payment timeout (#1592) 2025-08-11 22:06:49 +07:00