Skip to content

Commit e3ea871

Browse files
committed
fix: saturate total-with-hardware balance sum
1 parent f8e39e6 commit e3ea871

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

app/src/main/java/to/bitkit/models/BalanceState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@ data class BalanceState(
1717
) {
1818
val totalSats get() = totalOnchainSats + totalLightningSats
1919

20-
val totalWithHardwareSats get() = totalSats + totalHardwareSats
20+
val totalWithHardwareSats get() = totalSats.safe() + totalHardwareSats.safe()
2121
}

app/src/test/java/to/bitkit/models/BalanceStateTest.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,10 @@ class BalanceStateTest {
2626
val state = BalanceState(totalOnchainSats = 100uL, totalLightningSats = 50uL)
2727
assertEquals(state.totalSats, state.totalWithHardwareSats)
2828
}
29+
30+
@Test
31+
fun `totalWithHardwareSats saturates instead of overflowing`() {
32+
val state = BalanceState(totalLightningSats = ULong.MAX_VALUE, totalHardwareSats = 10uL)
33+
assertEquals(ULong.MAX_VALUE, state.totalWithHardwareSats)
34+
}
2935
}

0 commit comments

Comments
 (0)