From 397fb1a62e2efdb31dd91fca5ae37aefc400ee25 Mon Sep 17 00:00:00 2001 From: jvsena42 Date: Thu, 29 Jan 2026 06:48:22 -0300 Subject: [PATCH 1/4] fix: set backupVerified as true on restore with success --- app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt b/app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt index cd2b5ee43..58a694b49 100644 --- a/app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt +++ b/app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt @@ -401,7 +401,9 @@ class WalletViewModel @Inject constructor( walletRepo.restoreWallet( mnemonic = mnemonic, bip39Passphrase = bip39Passphrase, - ).onFailure { + ).onSuccess { + settingsStore.update { it.copy(backupVerified = true) } + }.onFailure { ToastEventBus.send(it) } } From 18c0979bca668ad675168ef4ab7e48cd99d7513a Mon Sep 17 00:00:00 2001 From: jvsena42 Date: Thu, 29 Jan 2026 06:49:56 -0300 Subject: [PATCH 2/4] test: restoreWallet should set backupVerified to true on success --- app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt b/app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt index 579fc2287..32cebc00b 100644 --- a/app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt +++ b/app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt @@ -156,6 +156,15 @@ class WalletViewModelTest : BaseUnitTest() { verify(lightningRepo).setInitNodeLifecycleState() } + @Test + fun `restoreWallet should set backupVerified to true on success`() = test { + whenever(walletRepo.restoreWallet(any(), anyOrNull())).thenReturn(Result.success(Unit)) + + sut.restoreWallet("test_mnemonic", null) + + verify(settingsStore).update(any()) + } + @Test fun `addTagToSelected should call walletRepo addTagToSelected`() = test { sut.addTagToSelected("test_tag") From 9a846ac0c872f493b09cac4b7cd62d38d56337b3 Mon Sep 17 00:00:00 2001 From: jvsena42 Date: Thu, 29 Jan 2026 07:28:38 -0300 Subject: [PATCH 3/4] fix: move backupVerified to repository --- app/src/main/java/to/bitkit/repositories/WalletRepo.kt | 2 ++ .../main/java/to/bitkit/viewmodels/WalletViewModel.kt | 4 +--- app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt | 9 --------- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/to/bitkit/repositories/WalletRepo.kt b/app/src/main/java/to/bitkit/repositories/WalletRepo.kt index 3b5782db4..6ea1981b5 100644 --- a/app/src/main/java/to/bitkit/repositories/WalletRepo.kt +++ b/app/src/main/java/to/bitkit/repositories/WalletRepo.kt @@ -300,6 +300,8 @@ class WalletRepo @Inject constructor( keychain.saveString(Keychain.Key.BIP39_PASSPHRASE.name, bip39Passphrase) } setWalletExistsState() + }.onSuccess { + settingsStore.update { it.copy(backupVerified = true) } }.onFailure { Logger.error("restoreWallet error", it, context = TAG) } diff --git a/app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt b/app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt index 58a694b49..cd2b5ee43 100644 --- a/app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt +++ b/app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt @@ -401,9 +401,7 @@ class WalletViewModel @Inject constructor( walletRepo.restoreWallet( mnemonic = mnemonic, bip39Passphrase = bip39Passphrase, - ).onSuccess { - settingsStore.update { it.copy(backupVerified = true) } - }.onFailure { + ).onFailure { ToastEventBus.send(it) } } diff --git a/app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt b/app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt index 32cebc00b..579fc2287 100644 --- a/app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt +++ b/app/src/test/java/to/bitkit/ui/WalletViewModelTest.kt @@ -156,15 +156,6 @@ class WalletViewModelTest : BaseUnitTest() { verify(lightningRepo).setInitNodeLifecycleState() } - @Test - fun `restoreWallet should set backupVerified to true on success`() = test { - whenever(walletRepo.restoreWallet(any(), anyOrNull())).thenReturn(Result.success(Unit)) - - sut.restoreWallet("test_mnemonic", null) - - verify(settingsStore).update(any()) - } - @Test fun `addTagToSelected should call walletRepo addTagToSelected`() = test { sut.addTagToSelected("test_tag") From ab96f9a1d8b6acd1cefc883e20869f5ccb7a63e4 Mon Sep 17 00:00:00 2001 From: jvsena42 Date: Thu, 29 Jan 2026 07:31:33 -0300 Subject: [PATCH 4/4] test: restoreWallet backupVerified repo tests --- .../to/bitkit/repositories/WalletRepoTest.kt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/app/src/test/java/to/bitkit/repositories/WalletRepoTest.kt b/app/src/test/java/to/bitkit/repositories/WalletRepoTest.kt index 1ea061bba..b44a661b7 100644 --- a/app/src/test/java/to/bitkit/repositories/WalletRepoTest.kt +++ b/app/src/test/java/to/bitkit/repositories/WalletRepoTest.kt @@ -166,6 +166,28 @@ class WalletRepoTest : BaseUnitTest() { verify(keychain).saveString(Keychain.Key.BIP39_MNEMONIC.name, mnemonic) } + @Test + fun `restoreWallet should set backupVerified to true on success`() = test { + val mnemonic = "restore mnemonic" + whenever(keychain.saveString(any(), any())).thenReturn(Unit) + + val result = sut.restoreWallet(mnemonic, null) + + assertTrue(result.isSuccess) + verify(settingsStore).update(any()) + } + + @Test + fun `restoreWallet should not set backupVerified when keychain fails`() = test { + val mnemonic = "restore mnemonic" + whenever(keychain.saveString(any(), any())).thenThrow(error) + + val result = sut.restoreWallet(mnemonic, null) + + assertTrue(result.isFailure) + verify(settingsStore, never()).update(any()) + } + @Test fun `refreshBip21 should generate new address when current is empty`() = test { whenever(lightningRepo.newAddress()).thenReturn(Result.success(ADDRESS_NEW))