From c8a691f1a9884c9870cbeb897209aa54fef5945d Mon Sep 17 00:00:00 2001 From: Ovi Trif Date: Fri, 23 Jan 2026 02:34:42 +0100 Subject: [PATCH 1/3] chore: update ldk-node to v0.7.0-rc.11 --- app/src/main/java/to/bitkit/ext/ChannelDetails.kt | 1 + .../to/bitkit/ui/screens/wallets/receive/ReceiveQrScreen.kt | 6 ++++-- gradle/libs.versions.toml | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/to/bitkit/ext/ChannelDetails.kt b/app/src/main/java/to/bitkit/ext/ChannelDetails.kt index 00441336b..b9ed28ea8 100644 --- a/app/src/main/java/to/bitkit/ext/ChannelDetails.kt +++ b/app/src/main/java/to/bitkit/ext/ChannelDetails.kt @@ -86,5 +86,6 @@ fun createChannelDetails(): ChannelDetails { forceCloseAvoidanceMaxFeeSatoshis = 0u, acceptUnderpayingHtlcs = false, ), + claimableOnCloseSats = 0u, ) } diff --git a/app/src/main/java/to/bitkit/ui/screens/wallets/receive/ReceiveQrScreen.kt b/app/src/main/java/to/bitkit/ui/screens/wallets/receive/ReceiveQrScreen.kt index d4101feb0..fee71ce50 100644 --- a/app/src/main/java/to/bitkit/ui/screens/wallets/receive/ReceiveQrScreen.kt +++ b/app/src/main/java/to/bitkit/ui/screens/wallets/receive/ReceiveQrScreen.kt @@ -701,7 +701,8 @@ private fun PreviewAutoMode() { maxDustHtlcExposure = org.lightningdevkit.ldknode.MaxDustHtlcExposure.FeeRateMultiplier(0uL), forceCloseAvoidanceMaxFeeSatoshis = 0uL, acceptUnderpayingHtlcs = false - ) + ), + claimableOnCloseSats = 0uL, ) AppThemeSurface { @@ -771,7 +772,8 @@ private fun PreviewSpendingMode() { maxDustHtlcExposure = org.lightningdevkit.ldknode.MaxDustHtlcExposure.FeeRateMultiplier(0uL), forceCloseAvoidanceMaxFeeSatoshis = 0uL, acceptUnderpayingHtlcs = false - ) + ), + claimableOnCloseSats = 0uL, ) AppThemeSurface { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bd7612931..1d7268bf0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" } ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } -ldk-node-android = { module = "com.github.synonymdev:ldk-node", version = "v0.7.0-rc.8" } # fork | local: remove `v` +ldk-node-android = { module = "com.github.synonymdev:ldk-node", version = "v0.7.0-rc.11" } # fork | local: remove `v` lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "lifecycle" } lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycle" } lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" } From f535f37c6def1f00a1a237989a582e59b14bc8e1 Mon Sep 17 00:00:00 2001 From: Ovi Trif Date: Fri, 23 Jan 2026 03:06:20 +0100 Subject: [PATCH 2/3] feat: use claimableOnCloseSats --- .../main/java/to/bitkit/ext/ChannelDetails.kt | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/to/bitkit/ext/ChannelDetails.kt b/app/src/main/java/to/bitkit/ext/ChannelDetails.kt index b9ed28ea8..6c24807c0 100644 --- a/app/src/main/java/to/bitkit/ext/ChannelDetails.kt +++ b/app/src/main/java/to/bitkit/ext/ChannelDetails.kt @@ -4,23 +4,9 @@ import org.lightningdevkit.ldknode.ChannelConfig import org.lightningdevkit.ldknode.ChannelDetails import org.lightningdevkit.ldknode.MaxDustHtlcExposure -/** - * Calculates our total balance in the channel (see `value_to_self_msat` in rust-lightning). - * - * This represents the amount we would receive if the channel closes now (excluding fees). - * Approximates ldk-node's `ClaimableOnChannelClose.amountSatoshis` (excluding HTLCs). - * - * Formula: outbound_capacity + our_reserve - * - outbound_capacity: What we can spend now over Lightning - * - our_reserve: Our reserve that we get back on close - */ +/** The amount we would receive if the channel closes now, from ldk-node's channel monitor. */ val ChannelDetails.amountOnClose: ULong - get() { - val outboundCapacitySat = this.outboundCapacityMsat / 1000u - val ourReserve = this.unspendablePunishmentReserve ?: 0u - - return outboundCapacitySat + ourReserve - } + get() = claimableOnCloseSats ?: 0uL /** Returns only `open` channels, filtering out pending ones. */ fun List.filterOpen(): List { From 9ca73da625f5d0b54a1fac54ef109123a6d6e216 Mon Sep 17 00:00:00 2001 From: Ovi Trif Date: Fri, 23 Jan 2026 04:16:47 +0100 Subject: [PATCH 3/3] chore: update bitkit-core to 0.1.37 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1d7268bf0..ad9f315ea 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ activity-compose = { module = "androidx.activity:activity-compose", version = "1 appcompat = { module = "androidx.appcompat:appcompat", version = "1.7.1" } barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version = "17.3.0" } biometric = { module = "androidx.biometric:biometric", version = "1.4.0-alpha05" } -bitkit-core = { module = "com.synonym:bitkit-core-android", version = "0.1.35" } +bitkit-core = { module = "com.synonym:bitkit-core-android", version = "0.1.37" } bouncycastle-provider-jdk = { module = "org.bouncycastle:bcprov-jdk18on", version = "1.83" } camera-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "camera" } camera-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "camera" }